Avatar billede henrik2000 Nybegynder
14. december 2001 - 08:45 Der er 1 kommentar

SA Fileup - SaveAsBlob

hej!
jeg prøver på at uploade en fil til en database gennem SA FileUp-komponenten. Jeg har læst at man skal bruge SaveAsBlob

Eksemplet fra deres hjemmeside ser således ud:

<%
set rsBlob = Server.CreateObject(\"ADODB.Recordset\")
rsBlob.Open \"SimpleBlobTable\", \"AccessUpload\", 2, 3
rsBlob.AddNew
upl.SaveAsBlob rsBlob.Fields(\"filecol\")
rsBlob.Update
rsBlob.Close
Set rsBlob = Nothing
%>


Min kode er her:
<form name=f1 ENCTYPE=\"MULTIPART/FORM-DATA\" METHOD=\"POST\" ACTION=\"saveasblob2.asp\">
<table>
        <tr>
            <td ALIGN=\"RIGHT\" VALIGN=\"TOP\" width=\"20\">Filnavn</td>
          <td ALIGN=\"LEFT\"><input TYPE=\"FILE\" NAME=\"FILE1\"></td>
        </tr>
        <tr>
          <td ALIGN=\"RIGHT\"></td>
          <td ALIGN=\"LEFT\"><input TYPE=\"SUBMIT\" NAME=\"SUB1\" VALUE=\"Upload\"></td>     
      </table>
     
</form>

submitter til denne side:

<%

Set upl = Server.CreateObject(\"SoftArtisans.FileUp\")

\'upl.Path = Server.MapPath(\"/\")

if  upl.form(\"FILE1\").IsEmpty then
    Response.Write \"Du glemte at udfylde feltet \"\"Filnavn\"\". Klik <a HREF=\"\"saveasblob.asp\"\">her</a> for at prøve igen.\"
else


STARTconn

strStrippedFilnavn = Mid(upl.form(\"FILE1\").UserFileName, InstrRev(upl.UserFilename, \"\\\") + 1)

upl.SaveAsBlob strStrippedFilnavn

eller noget andet???

upl.SaveAsBlob objRs(\"File_Data\") ???????

sql = \"INSERT INTO TEST (filename,filesize) VALUES (\'\" & strStrippedFilnavn & \"\',\" & upl.form(\"FILE1\").TotalBytes & \")\"
objConn.Execute(sql)

end if
%>


<P>Du har nu oploadet <%=upl.Form(\"FILE1\").UserFilename%></P>

<%   
ENDconn   
%>

Filename i databasen er filnavnet, filsize er filstørrelsen. Til selve filen har jeg et felt der hedder File_data som er af typen \"binary\".


Hvad gør jeg forkert???

Avatar billede henrik2000 Nybegynder
14. december 2001 - 14:57 #1
jeg fandt selv ud af det:
set rsBlob = Server.CreateObject(\"adodb.recordset\")

rsBlob.Open \"TABELNAVN\", Application(\"CONN\"), 2, 3

rsBlob.AddNew

rsBlob.Fields(\"filesize\")  = upl.form(\"FILE1\").TotalBytes
rsBlob.Fields(\"filename\")  = Mid(upl.form(\"FILE1\").UserFileName, InstrRev(upl.UserFilename, \"\\\") + 1)

upl.form(\"FILE1\").SaveAsBlob rsBlob.Fields(\"file_Data\")

rsBlob.Update
rsBlob.Close
Set rsBlob = Nothing

Hvis man skal vise resultatet, altså vise indholdet af den binære fil, så skal man lave en ny fil og skrive: (i dette tilfælde word-docs):

<%
Response.ContentType = \"application/msword\"%>

<%

DB start....

Response.BinaryWrite objConn.execute(\"SELECT File_Data FROM TABEL where ID =\'57\'\")(\"File_Data\")

conn = nothing

%>

Det er et godt trick at kunne!
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