Avatar billede cade.dk Nybegynder
13. oktober 2006 - 18:46 Der er 1 løsning

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.
Avatar billede cade.dk Nybegynder
10. november 2006 - 10:23 #1
boiiiiiiiiiiing :P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester