Avatar billede ravnborg Nybegynder
05. maj 2006 - 22:26 Der er 4 kommentarer

Problemer med aspSmartUpload

Jeg er ved at forsøge at lægge billeder op i en access database ved hjælp af aspSmartUpload.

Det ser ikke ud til at billederne bliver lagt rigtigt op.
Upload scriptet melder at billedet bliver oploadet, men når jeg prøver at se det kommer der ikke noget billed frem, kun et rødt kryds.

Feltet i databasen som skulle indeholde mit billede indholder følgende:
"???oô`~????????????????????????????????????????????????"



Hvordan får jeg det til at virke??


Upload script
--------------------------------------------------
<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim strSQL
  Dim oRs
  Dim intCount
  intCount=0
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("..\db\pic.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

'  Open a recordset
'  ****************
  strSQL = "SELECT FILENAME,FILE FROM PICS"

  Set oRs = Server.CreateObject("ADODB.recordset")
  Set oRs.ActiveConnection = oConn
  oRs.Source = strSQL
  oRs.LockType = 3
  oRs.Open

'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************
        oRs.AddNew
        file.FileToField oRs.Fields("FILE")
        oRs("FILENAME") = file.FileName
        oRs.Update
        intCount = intCount + 1
      End If
  Next

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.<BR>")

'  Destruction
'  ***********
  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
%>


Vis billed script
-----------------------------------------------------
<%

set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/pic.mdb")
set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM pics"
rs.Open SQL, Conn, 1, 3

do while not rs.eof

%>
<img src="<%=rs("file")%>">
<%

rs.movenext
loop
Avatar billede eagleeye Praktikant
05. maj 2006 - 22:42 #1
Når du gemmer på denne måde:

file.FileToField oRs.Fields("FILE")


Gemmer du selve filen i database ikke navnet på filen.
Så hvis du vil udskrive filen skal det gøres som dette:

    Response.ContentType = rs("Image_Type") 'skal gemme i databasen
    Response.BinaryWrite rs("FILE")


var de meningen?
Avatar billede eagleeye Praktikant
05. maj 2006 - 22:46 #2
Hvis det er meningen kan du prøve at læse denne artikel som beskrive hvordan man henter et billede ud fra databasen:

http://activedeveloper.dk/articles/43/
Avatar billede ravnborg Nybegynder
08. maj 2006 - 20:27 #3
Det kan jeg ikke få til at virke :-(

Inden jeg går videre, er det så smart at gemme i en database i forhold til en mappe??
Avatar billede eagleeye Praktikant
08. maj 2006 - 22:10 #4
Umiddelbart ville det nok være en fordel at havde det som filer når det er access da access er fil baseret og den vil vokse volsomt når der kommer filer i. Der er vist også noget med at Access har en max fil størrelse på 2Gb måske ikke lige noget man render ind i første omgang. Men jo større Access filen er jo langsommere bliver den at arbejde med.
Også hvis du selv vil lave backup og det skal køre via FTP kan der være en forel i ikke havde alt for stor en fil.


Har du sat felt typen til OLE-object?
http://support.microsoft.com/kb/103257/EN-US/
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