Upload fil og smid sti/filnavn i database på samme tid ud fra ID!
Hey folk :)Jeg sidder og roder med noget bruger oprettelse som foregår i flere step - jeg er nået til sidste og final step - der hvor brugeren skal upload et billede af sig selv - dataen brugeren indtaster bliver løbende tilføjet til databasen.
Jeg kan sagtens få den til at upload og smid stien i databasen - dog ikke ud fra det ID den skal hente fra QueryString (som den får sendt med fra tidligere) dvs. den opretter et ny post i tabellen.
Her er scriptet:
Fil1:
<%
server.scripttimeout=300
%>
<%
dim strAction
strAction = request("action")
select case strAction
case "upload"
UploadFile
case else
ShowForm
end select
sub ShowForm
%>
<form enctype="multipart/form-data" action="upload.asp?action=upload&id=<%=REQUEST.QueryString("ID")%>" method=post>
<b>Punkt 1: Vælg billedet</b> <br><br><input class="tekstboks" type="file" name="file"><br>
<input type="submit" value="Send">
</form> </p>
<%
end sub
sub UploadFile
dim intPosMIMEHeader, intPosFileDataStart
dim intPosFileNameStart, intPosFileNameEnd
dim intPosFileDataEnd, intDataSize
dim binData, binFileData, binFileName, binStart
dim strFileName
dim objFSO, objFile
intDataSize = request.totalbytes
binData = request.binaryread(intDataSize)
intPosMIMEHeader = instrB(binData,chrB(13) & chrB(10)) - 1
intPosFileDataStart = instrB(binData, chrB(13) & chrB(10) & chrB(13) & chrB(10)) + 4
intPosFileNameStart = instrB(binData,cstrB("filename=")) + 10
intPosFileNameEnd = instrB(intPosFileNameStart,binData,chrB(34))
binStart = midB(binData,1,intPosMimeHeader)
binFileName = midB(binData,intPosFileNameStart, _
intPosFileNameEnd - intPosFileNameStart)
intPosFileDataEnd = instrB(intPosMIMEHeader, binData, binStart) - 2
strFileName = bin2str(binFileName)
strFileName = right(strFileName, len(strFileName) - instrrev(strFileName,"\"))
set objFSO = server.createobject("Scripting.FileSystemObject")
set objFile = objFSO.CreatetextFile(server.mappath(".\billeder\" & strFileName), _
true, false)
objFile.write bin2str(midB(binData, intPosFileDataStart, _
intPosFileDataEnd - intPosFileDataStart))
objFile.close
set objFile = Nothing
set objFSO = Nothing
%>
<%
response.write "<img width='120' src='billeder/" & strFileName & "'>" %>
<form action="upload2.asp?action=uploadbesk&fil=<% = strFileName %>&id=<%=REQUEST.QueryString("ID")%>" method=post>
Indtast beskrivelse:<br> <input type="text" size="50" name="beskrivelse"><br>
<input type="hidden" name="ID" value="<%=REQUEST.QueryString("ID")%>">
<input type="submit" value="send">
</form></p>
<%
end sub
function bin2str(byref binS)
' omdanner en binær følge til en tekststreng
dim i, strRes
for i = 1 to lenB(binS)
strRes = strRes & chr(ascB(midB(binS, i, 1)))
next
bin2str = strRes
end function
function cstrB(strS)
' omdanner en tekststreng til en binær følge
dim i, binRes
for i = 1 to len(strS)
binRes = binRes & chrB(asc(mid(strS,i,1)))
next
cstrB = binRes
end function
%>
Fil2:
<% If request("action") = "uploadbesk" then
%>
<!--#include file="forbindelse.asp" --> <%
Set opretprofil = Server.CreateObject("ADODB.Recordset")
opretprofil.Open "select * from profiler WHERE ID=" & REQUEST.Form("ID"), database, 2, 2
IF NOT opretprofil.eof THEN
opretprofil("fil") = Request.Querystring("fil")
opretprofil("beskrivelse") = Request.Form("beskrivelse")
opretprofil.Update
Response.Redirect("Upload.asp")
End if
End if
%>
200 point til den der kan løse det - eller komme med en anden løsning der kan afvikles på IIS uden installering af dvs. komponenter.