Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > ASP > Generella frågor

AspUpload spara i databas

Det är så att jag vill skapa ett script som gör att jag kan ladda upp bilder som sparas i en mapp, och även att det sparas namn och info i en databas. Jag har sökt på olika forum och även kollat på aspupload.com för guider men jag har inte lyckats att skapa ett enkelt uppladnings script..

Jag har kommit så lång att jag kan ladda upp bilder i en mapp. Men inte spara i databas.

<%
If Request.Querystring("do") = "ladda_upp" ThenSet Upload = Server.CreateObject("Persits.Upload.1")
 Upload.OverwriteFiles = False
 On Error Resume Next
Upload.Save(Server.MapPath("bilder"))

response.write "Bilden  är uppladdad"
end if
%>

Hur ska jag göra för att spara i databasen?

mvh Kallgard.se
ID: #6191 | Skapades: 2008-03-06 15:14:42 | Tråden har 28 svar och har lästs 939 gånger.
Sida: 1 2

voigtan
voigtan

Gradering

#6192

http://www.aspupload.com/Manual.htm

For Each File in Upload.Files
    'File.Name
    'Gör din INSERT INTO SQL fråga med File.Name
Next

 

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #6192 | Skapades: 2008-03-06 15:35:27

Alltså så det blir såhär:

<%
If Request.Querystring("do") = "ladda_upp" Then
Set Upload = Server.CreateObject("Persits.Upload.1")
 Upload.OverwriteFiles = False
 On Error Resume Next
Upload.Save(Server.MapPath("bilder"))
For Each File in Upload.Files
 File.ToDatabase "Driver={Microsoft Access Driver (*.mdb)};DBQ=bilder.mdb")
   
   
    SQL = "INSERT INTO bilder(fil, namn) values('" & File.Name & "','"& Request.Form("namn") &"')"
   
next
%> 

Men var menar du att jag ska göra där det står 'File.Name?



Redigerad av Kallgard
Anledning:
mvh Kallgard.se
ID: #6201 | Skapades: 2008-03-06 17:15:33

voigtan
voigtan

Gradering

#6202

For Each file in Upload.files

Översätt det till Svenska:
För varje File i Upload.Files

Dvs du får en array (Dvs d skulle mycket väl kunna göra så att du laddar upp fler än en fil).

file.Name är ett objekt i Files där den har en Property vid namn "Name" bland annat. Vilket du kan använda för att få ut filens namn.     

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #6202 | Skapades: 2008-03-06 17:42:04

Okej.. Hur ska jag göra för att skapa en array? Jag är verkligen inte så bra på detta så jag skulle uppskatta om du visade med kod hur man gör.

mvh Kallgard.se
ID: #6204 | Skapades: 2008-03-06 17:58:45

voigtan
voigtan

Gradering

#6205

Varför ska du skapa en array? Upload.Files är en array av filer redan. For satsen loopar ut den till dig redan.

Din kod är helt fel när det gäller att spara ner den i SQL:en

Har inte läst manualen för ASP upload och har aldrig använd den heller men jag tror inte dom har ett inbyggt Connection objekt i den.

Du måste ha ett Connection objekt mot din databas

Du vet ju själv var filerna ligger på din server om du laddar upp

det ända du inte vet är filnamnet på filen. därför skrev jag att du ska använda file.Name i din for sats och köra en Insert till databasen med egentligen endast filnamnet då du vet var Path vägen till filen är på servern redan. om du laddar upp alla filer i en mapp som heter upload så vet du att den ligger: http://bob.com/upload/ då räcker det att ladda upp filnamnet och veta vad den har för filnamn. 

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #6205 | Skapades: 2008-03-06 18:30:34

Okej, vad är fel med min kod då? Vad ska jag göra för att den ska fungera?

 

<%
If Request.Querystring("do") = "ladda_upp" Then
Set Upload = Server.CreateObject("Persits.Upload.1")
 Upload.OverwriteFiles = False
 On Error Resume Next
Upload.Save(Server.MapPath("bilder"))
For Each File in Upload.Files
 File.ToDatabase "Driver={Microsoft Access Driver (*.mdb)};DBQ=bilder.mdb")
   
   
    SQL = "INSERT INTO bilder(fil, namn) values('" & File.Name & "','"& Request.Form("namn") &"')"
   
next
%> 

mvh Kallgard.se
ID: #6206 | Skapades: 2008-03-06 18:33:50

voigtan
voigtan

Gradering

#6207

Som jag redigerade nyss:

 

Din kod är helt fel när det gäller att spara ner den i SQL:en

Har inte läst manualen för ASP upload och har aldrig använd den heller men jag tror inte dom har ett inbyggt Connection objekt i den.

Du måste ha ett Connection objekt mot din databas

Du vet ju själv var filerna ligger på din server om du laddar upp

det ända du inte vet är filnamnet på filen. därför skrev jag att du ska använda file.Name i din for sats och köra en Insert till databasen med egentligen endast filnamnet då du vet var Path vägen till filen är på servern redan. om du laddar upp alla filer i en mapp som heter upload så vet du att den ligger: http://bob.com/upload/ då räcker det att ladda upp filnamnet och veta vad den har för filnamn.

 

Vad jag menar med file.Name .... läs länken jag postade till dig. Och jag vet inte hur jag kan förklara det på ett annat sätt.. Det är ett objekt som finns i files (ditt objekt för aspUpload). Läs deras manual om du vill veta mer om vad för objekt som finns i ASP Upload.
Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #6207 | Skapades: 2008-03-06 18:35:20

voigtan
voigtan

Gradering

#6209

Läste snabbt nu.. tydligen så har dom ett Connection objekt. Och dom har ett perfekt exempel på deras sida:

<HTML>
<BODY>
<%

    Set Upload = Server.CreateObject("Persits.Upload.1")
    Upload.Save "c:\upload"

      On Error Resume Next
      For Each File in Upload.Files
            File.ToDatabase "DSN=MyImages;UID=sa;PWD=xxx;", _
                  "insert into MyImages(filename, Image1) values('" & File.Path & "', ?)"
            if Err <> 0 Then
                  Response.Write "Error saving the file: " & Err.Description Else
                  File.Delete
                  Response.Write "Success!" End If Next

%>

</BODY>
</HTML>
Det ända du behöver göra är att skriva rätt DNS / Connection sträng och en korrekt  Insert SQL fråga.   

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #6209 | Skapades: 2008-03-06 18:41:49

Jag testade det där och skrev dit connect och insert som jag tror att det ska vara..

<%    Set Upload = Server.CreateObject("Persits.Upload.1")
    Upload.Save "../bilder"
      On Error Resume Next
      For Each File in Upload.Files
            Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("bilder.mdb")
            SQL = "insert into bilder(fil) values('" & File.ExtractFileName & "')"
            if Err <> 0 Then
                  Response.Write "Error saving the file: " & Err.Description Else
                  File.Delete
                  Response.Write "Success!" End If Next
%>

Men får fortfarande 500 Internal Server Error

mvh Kallgard.se
ID: #6216 | Skapades: 2008-03-06 19:14:15

voigtan
voigtan

Gradering

#6219

Vad får du för felmeddelande då?

+ du saknar radbrytning på End if och Next 

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #6219 | Skapades: 2008-03-06 19:27:46

Såg inte det där med End if och next, Det har jag fixat. Ingen skillnad

Jag får detta felmeddelnde:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.
More information about this error may be available in the server error log

mvh Kallgard.se
ID: #6220 | Skapades: 2008-03-06 19:46:40

voigtan
voigtan

Gradering

#6221

Du har nog inte skrivrättigheter till din databas och eller till mappen du laddar upp filerna till.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #6221 | Skapades: 2008-03-06 19:48:00

Men grejjen är den att jag inte ens försöker att ladda upp en fil.. Så fort jag går in på sidan kommer det meddelandet upp..

mvh Kallgard.se
ID: #6224 | Skapades: 2008-03-06 20:38:55

voigtan
voigtan

Gradering

#6225

hur ser hela din fil ut då?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #6225 | Skapades: 2008-03-06 20:39:56

<form method="post" enctype="multipart/form-data" action="?do=ladda_upp">
<input type="file" name="file"><br>
<input type="submit" value="Skicka filen">
</form>
<%
    Set Upload = Server.CreateObject("Persits.Upload.1")
    Upload.Save "../bilder"
      On Error Resume Next
      For Each File in Upload.Files
            Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("bilder.mdb")
            SQL = "insert into bilder(fil) values('" & File.ExtractFileName & "')"
            if Err <> 0 Then
                  Response.Write "Error saving the file:  & Err.Description &"
                  Else
                  File.Delete
                  Response.Write "Success!"
                   End If
                   Next
%>



Redigerad av Kallgard
Anledning:


Redigerad av Kallgard
Anledning:
mvh Kallgard.se
ID: #6226 | Skapades: 2008-03-06 20:53:32
Sida: 1 2
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy