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.