Jag undrar hur jag på bästa sätt fixar detta: Denna kursen kanske kan vara något? ...kanske kan vara ngt - jag är dock inte superhaj på detta så när jag inte kopplade allt i denna artikel med en gång undrar jag om jag kan modifiera nedanstående kodsnutt på ngt sätt??? ...till slut använde jag mig av den komponenten (aspSmartUpload) som hotellet använder...enkelt & bra - jag hade dock inte så stor koll på hur det fungerade till att börja med, men när man väl kom in i det (& det gick fort) var det lätt...Ladda upp bild tillsammans med formulärtext.
Jag har ett formulär där jag skriver in text, samt anger vilken bildfil från hd jag skall ladda upp. När jag skickar formulärdata vill jag att bilden skall laddas upp samtidigt som texterna skrivs in i db:n...allt genom ett & samma klick vid formuläret.
Jag vet hur jag laddar upp filen & hur jag skriver till db:n, men jag vet bara inte hur jag på bästa sätt kan kombinera dessa två för att genom bara ett klick genomföra bägge åtgärderna...hoppas ngn har ett bra svar.
/PeterSv: Ladda upp bild tillsammans med formulärtext.
http://www.pellesoft.nu/login/articles/asp/fileupload.asp
/JohanSv: Ladda upp bild tillsammans med formulärtext.
<code>
<%@EnableSessionState=True%>
<%Response.Buffer=True%>
<%Response.Expires=0
UPLOAD_PATH = Server.MapPath("../images/news")
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = Fso.getFolder(UPLOAD_PATH)
If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then
Set Upload = get_upload_files()
fcontent = Upload("upload").Item("content")
allowlist = ".gif,.jpg,.jpeg,.JPG,.bmp"
extension = right(extract_filename(Upload("upload").Item("filename")),4)
If Fso.FileExists(UPLOAD_PATH & "\" & extract_filename(Upload("upload").Item("filename"))) Then
Session("mess") = "...the file name already exist!!!"
Response.Redirect "admin.asp"
Else
If instr(allowlist,extension) then
Set File = Fso.CreateTextFile(UPLOAD_PATH & "\" & extract_filename(Upload("upload").Item("filename")))
Else
Session("mess") = "...You can <b>not</b> upload a file with that specific extension. These extensions are allowed: <b>" & allowlist & "</b>!!!"
Response.Redirect "admin.asp"
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"
Response.Redirect "admin.asp"
End If%>
<%
Function get_upload_files()
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)
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)
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
%>
</code>Sv: Ladda upp bild tillsammans med formulärtext.