• 25-01-2010, 16:08:31
    #1
    Arkadaşlar merhaba.Forumda bakındım ama benim sorunum gibi bi soruna rastlayamadım o yüzden yeni konu açmak zorunda kaldım.

    Siteme dahil ettiğim şöyle bir script var.kodları aşağıda;

    <%
    class cls_CBUpload_File
    public Name
    public Data
    public ContentType
    public FormName

    public function Size
    Size = len(Data)
    end function

    public function SaveToFile(sFilename)
    dim sBrowser
    dim oFSO, oSaveFile
    dim iStartPos
    set oFSO = server.createObject("Scripting.FileSystemObject")

    SaveToFile = true

    on error resume next
    set oSaveFile = oFSO.CreateTextFile(sFilename, true)
    oSaveFile.Write(Data)
    oSaveFile.Close

    if(Err <> 0) then
    SaveToFile = false
    end if

    on error goto 0

    set oSaveFile = Nothing
    set oFSO = Nothing
    end function
    end class

    class cls_CBUpload
    public Form
    public Files
    public Error

    sub parseFormData(byref aData)

    Response.Write(Timer - iTimer & "<br />")
    dim iCounter, iEndMarker
    dim sFieldInfo, sFieldValue
    dim oFile
    for iCounter = 0 to UBound(aData)
    iEndMarker = instr(aData(iCounter), vbCrLf & vbCrLf)
    if iEndMarker > 0 then
    sFieldInfo = mid(aData(iCounter), 3, iEndMarker - 3)
    sFieldValue = mid(aData(iCounter), iEndMarker + 4, len(aData(iCounter)) - iEndMarker - 7)
    if(instr(sFieldInfo, "filename=") > 0) then
    if(len(getFileName(sFieldInfo)) > 0) then
    set oFile = new cls_CBUpload_File
    oFile.Name = getFileName(sFieldInfo)
    oFile.FormName = getFieldName(sFieldInfo)
    oFile.Data = sFieldValue
    oFile.ContentType = getContentType(sFieldInfo)
    call Files.Add(getFieldName(sFieldInfo), oFile)
    set oFile = nothing
    end if
    else
    call Form.Add(getFieldName(sFieldInfo), sFieldValue)
    end if
    end if
    next
    end sub

    function getFieldName(sData)
    dim iStartPos, iEndPos, sQuote
    if(sData = "") then
    getFieldName = ""
    exit function
    end if
    sQuote = chr(34)
    iStartPos = instr(sData, "name=")
    iEndPos = instr(iStartPos + 6, sData, sQuote & ";")
    if iEndPos = 0 then
    iEndPos = instr(iStartPos + 6, sData, sQuote)
    end if
    getFieldName = mid(sData, iStartPos + 6, iEndPos - (iStartPos + 6))
    end function

    function getContentType(byval sData)
    dim iStartPos, iEndPos
    if(sData = "") then
    getContentType = ""
    exit function
    end if
    iStartPos = instr(sData, "Content-Type: ")
    iEndPos = len(sData)
    getContentType = mid(sData, iStartPos + 14, iEndPos)
    end function

    function getFileName(byval sData)
    dim sBrowser
    dim iStartPos, iEndPos, sQuote
    if(sData = "") then
    getFieldName = ""
    exit function
    end if
    sQuote = Chr(34)
    iStartPos = instr(sData, "filename=")
    iEndPos = instr(iStartPos + 10, sData, sQuote & ";")
    if iEndPos = 0 then
    iEndPos = instr(iStartPos + 10, sData, sQuote)
    end if
    sData = mid(sData, iStartPos + 10, iEndPos - (iStartPos + 10))

    sBrowser = UCase(Request.ServerVariables("HTTP_USER_AGENT"))
    if(instr(sBrowser, "WIN") > 0) then
    iStartPos = instrrev(sData, "\")
    sData = mid(sData, iStartPos + 1)
    else
    iStartPos = instrrev(sData, "/")
    sData = mid(sData, iStartPos + 1)
    end if

    getFileName = sData
    end function

    function parseRequest()
    const adLongVarChar = 201
    dim oRS
    dim iBytesRead, iBlockSize, iTotalBytes

    iTotalBytes = Request.TotalBytes
    iBlockSize = 16384
    iBytesRead = 0

    set oRS = CreateObject("ADODB.Recordset")
    oRS.Fields.Append "BinaryField", adLongVarChar, iTotalBytes
    oRS.Open
    oRS.AddNew

    do while(iBytesRead < iTotalBytes)
    if(iBytesRead + iBlockSize < iTotalBytes) then
    oRS("BinaryField").AppendChunk Request.BinaryRead(iBlockSize)
    iBytesRead = iBytesRead + iBlockSize
    else
    oRS("BinaryField").AppendChunk Request.BinaryRead(iTotalBytes - iBytesRead)
    iBytesRead = iTotalBytes
    end if
    loop

    oRS.Update
    parseRequest = oRS.Fields("BinaryField").Value
    oRS.Close
    set oRS = nothing
    end function

    sub Class_Initialize
    dim sData, sContentType, sBoundary
    dim iEndPos
    dim aData

    sContentType = Request.ServerVariables("HTTP_CONTENT_TYPE")

    if InStr(sContentType, "multipart/form-data") > 0 then
    sData = parseRequest
    iEndPos = InStrRev(sContentType, "=")
    sBoundary = Trim(Right(sContentType, Len(sContentType) - iEndPos))
    aData = Split(sData, sBoundary)
    set Form = CreateObject("Scripting.Dictionary")
    set Files = CreateObject("Scripting.Dictionary")
    call parseFormData(aData)
    else
    Error = "Incorrect encoding type"
    end if
    end sub

    sub Class_Terminate
    set Form = nothing
    set Files = nothing
    end sub
    end class
    %>

    Bu kodlarda karakter belirtilmiş sanırım.UCase denilen yerde diye tahmin ediyorum.

    Sorunum şu.Türkçe karakter sorununu çözmek için

    <% @ Language = VBScript CodePage=1254 %>
    <%
    Session.CodePage = 1254
    Session.LCID = 1055
    %>
    <%Response.Charset="ISO-8859-9"
    Response.Charset="Windows-1254"
    response.ContentType="text/HTML"
    %>

    bu kodları yazdığımda,

    Active Server Pages error 'ASP 0245'

    Mixed usage of Code Page values

    /upload2.asp, line 1

    The @CODEPAGE value specified differs from that of the including file's CODEPAGE or the file's saved format.

    bu hatayı almaktayım.İki kere karakter belirtilemez gibi bişey sanırm.Bunu nasıl düzeltebilirim.Yardımlarınızı bekliyorum.Teşekkürler.
  • 25-01-2010, 19:00:21
    #2
    Üyeliği durduruldu
    <% @ Language = VBScript CodePage=1254 %>

    şunu sil
  • 26-01-2010, 11:32:26
    #3
    maalesef o kodu silmeme rağmen yine türkçe karakterler çıkmıyor.

    ShekerChi adlı üyeden alıntı: mesajı görüntüle
    <% @ Language = VBScript CodePage=1254 %>

    şunu sil
  • 26-01-2010, 12:50:45
    #4
    Üyeliği durduruldu
    bu kodun amacı dosya upload etmek mi ?
  • 26-01-2010, 12:55:24
    #5
    evet bilgisayardan seçilen dosyayı sitenin olduğu servere atıyor.Amacı bu.Ancak sitenin her tarafı türkçe çalışırken.Upload tamamlanıp dosya bilgilerinin gösterildiği sayfada türkçe karakterler bozuk çıkıyor.Sebebini bi türlü çözemedim hala

    ShekerChi adlı üyeden alıntı: mesajı görüntüle
    bu kodun amacı dosya upload etmek mi ?
  • 08-02-2010, 23:44:38
    #6
    Eposta Aktivasyonu Gerekmekte
    <%
    Session.CodePage = 1254
    Session.LCID = 1055
    %>
    <%Response.Charset="ISO-8859-9"
    Response.Charset="Windows-1254"
    response.ContentType="text/HTML"
    %>



    Şu kısmı


    <%Response.Charset = "windows-1254"
    Session.LCID = 1055
    Session.CodePage = 1254
    %>

    Şöyle denermsiniz.