Hejsan.FSO - Ladda upp bild.
Då mitt webbhotel tycks klydda med licensen för ASPupload så tog jag mig en titt på om jag kunde lösa bilduppladdningen med fso så länge, och tog bara direkt och kopierade koden som finns här och byggde om lite. Får det nästan att fungera, men koden tycks ha problem med att slutföra det hela, eftersom det vägrar att skriva .gif, .jpg osv. rätt, utan de blir %90%5 eller liknande, vet inte varför det blir så. Någon som kan hjälpa?
Koden ni ser nedan är snabbt ihopdragen och slarvigt gjord, alltså att det finns vissa saker som man skulle kunna göra så att det blev mindre tecken osv., men jag har inte fått det att fungera, därmed så har jag inte optimerat.<%intTextSendedId = Request.Querystring("id")
Const ForWriting = 2
Const TristateTrue = -1
CrLf = Chr(13) & Chr(10)
Function GetFieldName(infoStr)
sPos = InStr(infoStr, "name=")
EndPos = InStr(sPos + 6, infoStr, Chr(34) & ";")
If EndPos = 0 Then
EndPos = inStr(sPos + 6, infoStr, Chr(34))
End If
GetFieldName = Mid(infoStr, sPos + 6, endPos - (sPos + 6))
End Function
Function GetFileName(infoStr)
sPos = InStr(infoStr, "filename=")
EndPos = InStr(infoStr, Chr(34) & CrLf)
GetFileName = Mid(infoStr, sPos + 10, EndPos - (sPos + 10))
End Function
Function GetFileType(infoStr)
sPos = InStr(infoStr, "Content-Type: ")
GetFileType = Mid(infoStr, sPos + 14)
End Function
PostData = ""
Dim biData
biData = Request.BinaryRead(Request.TotalBytes)
For nIndex = 1 to LenB(biData)
PostData = PostData & Chr(AscB(MidB(biData,nIndex,1)))
Next
ContentType = Request.ServerVariables("HTTP_CONTENT_TYPE")
ctArray = Split(ContentType, ";")
If Trim(ctArray(0)) = "multipart/form-data" Then
bArray = Split(Trim(ctArray(1)), "=")
Boundary = Trim(bArray(1))
FormData = Split(PostData, Boundary)
Dim myRequest, myRequestFiles(9, 3)
Set myRequest = CreateObject("Scripting.Dictionary")
FileCount = 0
For x = 0 to UBound(FormData)
InfoEnd = InStr(FormData(x), CrLf & CrLf)
If InfoEnd > 0 Then
varInfo = Mid(FormData(x), 3, InfoEnd - 3)
varValue = Mid(FormData(x), InfoEnd + 4,Len(FormData(x)) - InfoEnd - 7)
myRequestFiles(FileCount, 0) = GetFieldName(varInfo)
myRequestFiles(FileCount, 1) = varValue
myRequestFiles(FileCount, 2) = GetFileName(varInfo)
myRequestFiles(FileCount, 3) = GetFileType(varInfo)
FileCount = FileCount + 1
End If
Next
Else
Response.Redirect "Du har fel encoding typ!"
End If
Set lf = server.createObject("Scripting.FileSystemObject")
filename = myRequestFiles(0,1)
extension = lcase(right(filename, 4))
Select Case extension
case ".gif"
extension = ".gif"
case ".jpg"
extension = ".jpg"
End Select
Function openCon()
strCon = "Driver={MySQL ODBC 3.51 Driver}; Server=xxx; UID=xxx; DB=xxx; PWD=xxx;"
Set objTmp = Server.CreateObject("ADODB.Connection")
objTmp.Open(strCon)
Set openCon = objTmp
End Function
Set objCon = openCon()
Function pass(word)
Dim password
Const PassChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
Randomize
For C = 1 to 10
Password = Password & mid (PassChars, int(rnd * len(PassChars))+ 1, 1 )
Next
Pass = Password
End function
strPicDate = pass(word)
strRecId = intTextSendedId
strTheNewFileName = strRecId&"_"&strPicDate
fName = strTheNewFileName&""&extension
FilePath = "pressbilder/" & fName
strFinalPic = strPicDate&""&extension
strFinalPic = Replace(strFinalPic,"'","''")
strSql = "insert into bilder(pTo, pBild) values('"&strRecId&"','"&strFinalPic&"')"
objCon.Execute(strsql),,128
objCon.Close:Set objCon=Nothing
SavePath = Server.MapPath(FilePath)
Set SaveFile = lf.CreateTextFile(SavePath, True)
SaveFile.Write(myRequestFiles(0, 1))
SaveFile.Close
Response.Redirect "pictureup.asp?id="&intTextSendedId
%>