Då verkar det som att objektet File inte är skapat.
Lägg till lite testutskrifter för att försöka ta reda på varför.
Allå!
Nu är jag inne på ett område jag inte behärskar så bra, nämligen filuppladdning och i det här fallet av bilder. Jag har hittat ett skript som jag håller på att anpassa efter mina behov men får följande felmeddelande när jag försöker ladda upp en .jpg-bild:
Objekt krävs.: ''
/public_html/medlemssidor/administration.asp, line 797
Rad 797 ser ut så här:
For i = 1 to LenB(fcontent)
[B]File.Write chr(AscB(MidB(fcontent, i, 1)))[/B]
Next
Så här ser hela faderullan ut. Notera att den inte är klar och jag vet inte exakt vad alla delar gör men principen är att man laddar upp en fil, funktionen kontrollerar att inte filen redan finns och laddar därefter upp den. Sedan skickas man till skicka.asp där man får skriva en beskrivning av filen i en databas.
Vårsågoda:
...
ElseIf Request.QueryString("Do") = "Add" Then
Select Case(Request.QueryString("What"))
Case "Bilder"
Dim UPLOAD_PATH, Fso, Folder, Upload, fcontent, allowlist, extension, i, file
UPLOAD_PATH = Server.MapPath("bildarkiv")
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = Fso.getFolder(UPLOAD_PATH)
'Denna rad behövs nog inte eftersom jag använder ElseIf Request.QueryString ovan för att läsa anropet.
'If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then
Set Upload = get_upload_files()
fcontent = Upload("upload").Item("content")
allowlist = ".gif,.GIF,.jpg,.JPG,.jpeg,.JPEG,.bmp,.BMP"
extension = right(extract_filename(Upload("upload").Item("filename")),4)
If Fso.FileExists(UPLOAD_PATH & "\" & extract_filename(Upload("upload").Item("filename"))) Then
Response.Write "En fil med det namnet finns redan! Döp om filen du vill ladda upp och prova igen"
Response.Write "<b><a href='JavaScript:history.go(-1);'>Tillbaka</a></b>"
Else
If instr(allowlist,extension) then
Set File = Fso.CreateTextFile(UPLOAD_PATH & "\" & extract_filename(Upload("upload").Item("filename")))
Else
Response.Write "Filen är i felaktigt format. Endast " & allowlist & " är godkända."
Response.Write "<b><a href='JavaScript:history.go(-1);'>Tillbaka</a></b>"
End If
End If
For i = 1 to LenB(fcontent)
File.Write chr(AscB(MidB(fcontent, i, 1)))
Next
File.Close: Set File = Nothing
Session("fil") = extract_filename(Upload("upload").Item("filename"))
Session("visa") = "ok"
'################################################################################## LÄGG IN SKICKA.ASP MED IF-SATS ISTÄLLET
Response.Redirect "skicka.asp"
'################################################################################## LÄGG IN SKICKA.ASP MED IF-SATS ISTÄLLET
'End If
Function get_upload_files()
Dim upload_object, request_binaries, position_start, position_end, boundary, boundary_pos, name, pos_file
Set upload_object = Server.CreateObject("Scripting.Dictionary")
request_binaries = Request.BinaryRead(Request.TotalBytes)
position_start = 1
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
boundary = MidB(request_binaries, position_start, (position_end - position_start))
boundary_pos = InstrB(1, request_binaries, boundary)
Do Until (boundary_pos = InstrB(request_binaries, boundary & get_byte_string("--")))
If Not(Response.IsClientConnected) Then Response.End
position_start = (InstrB(InstrB(boundary_pos, request_binaries, get_byte_string("Content-Disposition")), request_binaries, get_byte_string("name=")) + 6)
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(34)))
name = get_string(MidB(request_binaries, position_start, (position_end - position_start)))
pos_file = InstrB(boundary_pos, request_binaries, get_byte_string("filename="))
If ((pos_file <> 0) AND (pos_file < InstrB(position_end, request_binaries, boundary))) Then
upload_object.Add name, Server.CreateObject("Scripting.Dictionary")
position_start = (pos_file + 10)
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(34)))
upload_object.item(name).Add "filename", get_string(MidB(request_binaries, position_start, (position_end - position_start)))
position_start = (InstrB(position_end, request_binaries, get_byte_string("Content-Type:")) + 14)
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
upload_object.item(name).Add "content-type", get_string(MidB(request_binaries, position_start, (position_end - position_start)))
position_start = (position_end + 4)
position_end = InstrB(position_start, request_binaries, boundary) - 2
upload_object.item(name).Add "size", ((position_end - position_start))
upload_object.item(name).Add "content", MidB(request_binaries, position_start, (position_end - position_start))
End If
boundary_pos = InstrB(boundary_pos + LenB(boundary), request_binaries, boundary)
Loop
Set get_upload_files = upload_object
End Function
Function get_byte_string(str)
Dim cnt
For cnt = 1 to Len(str)
get_byte_string = get_byte_string & chrB(AscB(Mid(str, cnt, 1)))
Next
End Function
Function get_string(str)
Dim cnt
For cnt = 1 to LenB(str)
get_string = get_string & chr(AscB(MidB(str, cnt, 1)))
Next
End Function
Function extract_filename(filename)
extract_filename = Right(filename, Len(filename) - InStrRev(filename, "\", -1, 1))
End Function
End Select
Else
'-------------------------------------- VISA BILDFORMULÄR
%>
<font size="3"><b>Lägg till bild:</b></font><br>
<img src="bilder/main_rule_admin.jpg" width="590"><br>
<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td bgcolor="#FFFFCC">
<font size="1">Nedan kan en bild med något av formatet gif, jpg, jpeg, eller bmp laddas upp. Efter uppladdning skett
kan beskrivning skrivas till bilden.</font>
</td></tr></table><br>
<script language="JavaScript">
<!--
function blured()
{
for (a in document.links) document.links[a].onfocus = document.links[a].blur;
}
if (document.all)
{
document.onmousedown = blured;
}
// -->
</script>
<form name="frmUpload" method="post" enctype="multipart/form-data" action="administration.asp?AnvId=<% =AnvId %>&Sida=Bilder&Do=Add&What=Bilder">
<input type="file" name="upload" size="35"> <input type="submit" value="Ladda upp">
<%If Session("mess") <> "" Then%>
<%=Session("mess")%><%Session("mess") = ""%>
<%End If%>
</form>
...
