Hej! Hej Pelle!Behöver hjälp med ....
Någon som ser varför det inte funkar?
<code>
<%Response.Buffer = true
Function BuildUpload(RequestBin)
'Get the boundary
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
'Get all data inside the boundaries
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
'Members variable of objects are put in a dictionary object
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
'Get an object name
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
'Test if object is of file type
If PosFile<>0 AND (PosFile<PosBound) Then
'Get Filename, content-type and content of file
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
'Add filename to dictionary object
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
'Add content-type to dictionary object
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
'Get content of object
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
'Get content of object
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
UploadControl.Add "Value" , Value
UploadRequest.Add name, UploadControl
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop
End Function
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
If request("Action")="1" then
set file = upload.Form("blob")
If file.IsFile then
filtyp = file.ContentType
filstorlek = file.Size
beskrivning = upload.Form("beskrivning")
If filtyp = "image/gif" or filtyp = "image/pjpeg" then
'=========================================================================
' öppnar vi en koppling till databasen
'=========================================================================
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("data/upload.mdb")
SQLStmt = "Insert into upload "
SQLStmt = SQLStmt & " (beskrivning, storlek)"
SQLStmt = SQLStmt & " Values('" & beskrivning & "', " & filstorlek & ")"
Connection.Execute(SQLStmt)
SET SQLStmt = Nothing
SQLStmt = "Select Max(Id) as senasteid from upload"
SET RS = Connection.Execute(SQLStmt)
senasteid = RS("senasteid")
RS.Close
SET SQLStmt = Nothing
If filtyp = "image/gif" Then
Extension = "gif"
elseif filtyp = "image/pjpeg" Then
Extension = "jpg"
End If
filnamn = "bild" & senasteid & "." & Extension
SQLStmt = "Update upload "
SQLStmt = SQLStmt & " SET Filnamn = '" & Filnamn & "'"
SQLStmt = SQLStmt & " Where Id = " & senasteid
Connection.Execute(SQLStmt)
SET SQLStmt = Nothing
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUpload(RequestBin)
If UploadRequest.Item("blob").Item("Value") <> "" Then
contentType = UploadRequest.Item("blob").Item("ContentType")
filepathname = UploadRequest.Item("blob").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
FolderName = UploadRequest.Item("where").Item("Value")
Path = Mid(Request.ServerVariables("PATH_TRANSLATED"), 1, Len(Request.ServerVariables("PATH_TRANSLATED")) - Len(Request.ServerVariables("PATH_INFO"))) & "\"
ToFolder = Path & "\" & FolderName
value = UploadRequest.Item("blob").Item("Value")
filename = ToFolder & "\" & filename
Set MyFileObject = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = MyFileObject.CreateTextFile(filename)
For i = 1 to LenB(value)
objFile.Write chr(AscB(MidB(value,i,1)))
Next
objFile.Close
Set objFile = Nothing
Set MyFileObject = Nothing
End If
Set UploadRequest = Nothing
Connection.Close
End If
End If
%>
<form METHOD="POST" ENCTYPE="multipart/form-data" action="pure_asp_upload.asp?Action=1" name="form1" id="form1">
<table cellspacing="0" cellpadding="3" width="100%" border="0">
<tr>
<td>
<b>Select a file to upload: </b>
</td>
<td>
<input TYPE="file" NAME="blob" value>
<input TYPE="HIDDEN" NAME="where" value="Images">
</td>
<tr>
<td colspan="2" align="center">
<textarea
rows="4" name="Beskrivning" cols="40"></textarea> <p> </p>
<p> </p>
<p>
<input TYPE="submit" NAME="Upload" Value="Click to Upload">
</p>
</td>
</tr>
</table>
</form>
</code>Sv: Behöver hjälp med ....
Jepp, jag vet, det är en hemsk kod..
Hur som helst, när jag har valt en fil och fyllt i beskrivning och klickar på upload knappen:
Körningsfel i Microsoft VBScript fel '800a01a8'
Objekt krävs.: 'file'
upload.asp, rad 81
Har försökt att fixa det men det blir bara andra error av alla möjliga slag..
/En trött Tomas