Avatar billede blaatand Nybegynder
21. januar 2003 - 07:30 Der er 34 kommentarer og
3 løsninger

Upload af billede(r) + storage i database!

Jeg sider lige og fedter med at skulle lave en screenshot sektion på min site, og vil gerne have den lavet så andre folk der ikke har adgang til min server, kan uploade filer osv rimelig let, uden det helt store med at skulle uploade først, huske filnavnet, og så indsætte det i databasen et helt andet sted.

I øjeblikket bruger jeg dette når jeg skal have uploaded filer, og jeg ville gerne have sat det sammen med en database så filnavnet gemmes i databasen samtidig med at man uploader... ydermere, at der skal være en lille tekst til hvert billede:

Formen:

<form method="post" enctype="multipart/form-data" action="upload_recive.asp">
  <input type=file name="file1" class="formCollor"><br>
  <input type=submit value="upload!" class="buttonCollor">
</form>

Recive filen som uploader til serveren:

<%
  Set Upload = Server.CreateObject("Persits.Upload.1")
  Count = Upload.SaveVirtual("/gas/admin/screenshots")
  Response.Write Count & " fil(er) modtaget. du kan se listen af filer her: <a href=upload/files.asp target=_parent class=contentTekst>files</a><br><br>hvis du vil vide hvad urlen er til billedet, så bare tryk på files, og find dit billede, og tryk på linket til det :)"
%>

Jeg har udlovet 200 points, da jeg ingen anelse har om hvordan jeg skal gribe det an... har prøvet før, men ikke lykkedes mig at få det til at fungere som jeg ville have det.
Avatar billede medions Nybegynder
21. januar 2003 - 07:42 #1
<%
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("databasenavn.mdb")
   
    Set Upload = Server.CreateObject("Persits.Upload.1")
    Count = Upload.SaveVirtual("/gas/admin/screenshots")
    Response.Write Count & " fil(er) modtaget. du kan se listen af filer her: <a href=upload/files.asp target=_parent class=contentTekst>files</a><br><br>hvis du vil vide hvad urlen er til billedet, så bare tryk på files, og find dit billede, og tryk på linket til det :)"

        strSQL = "INSERT INTO tblUploads (filnavn, dato) VALUES ('" & Upload.FileName & "', Date())"
    objConn.Execute(strSQL)
%>

//>Rune
Avatar billede blaatand Nybegynder
21. januar 2003 - 07:46 #2
Wrong Content-Type. Make sure you have included the attribute ENCTYPE="multipart/form-data" in your form.

hvad faen betyder det?
Avatar billede mansk Nybegynder
21. januar 2003 - 07:48 #3
Jeg sidder med et lignende problem jeg skal bruge filnavnet - og kun filnavnet på de filer jeg uploader. File.Path giver jo hele stien fx c:\upload\billede.jpg det jeg skal bruge er "billede.jpg". Upload.Filename virker ikke, da "Objektet ikke understøtter dette "kald""
Avatar billede blaatand Nybegynder
21. januar 2003 - 07:48 #4
ar for faen, nm det, jeg var lige lidt væk der! :)

Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'FileName'

/gas/admin/uploadscreenshot.asp, line 16

får denne fejl når jeg prøver og uploade fil
Avatar billede blaatand Nybegynder
21. januar 2003 - 07:49 #5
hehe, sjovt du lige skrev det :D
Avatar billede medions Nybegynder
21. januar 2003 - 07:49 #6
Hov, sorry.. det skaæ være sådan her:

<%
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("databasenavn.mdb")
   
    Set Upload = Server.CreateObject("Persits.Upload.1")
    Count = Upload.SaveVirtual("/gas/admin/screenshots")
    Response.Write Count & " fil(er) modtaget. du kan se listen af filer her: <a href=upload/files.asp target=_parent class=contentTekst>files</a><br><br>hvis du vil vide hvad urlen er til billedet, så bare tryk på files, og find dit billede, og tryk på linket til det :)"

        strSQL = "INSERT INTO tblUploads (filnavn, dato) VALUES ('" & Upload.Form("file1") & "', Date())"
    objConn.Execute(strSQL)
%>

//>Rune
Avatar billede blaatand Nybegynder
21. januar 2003 - 07:57 #7
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Field 'tblUploads.Filnavn' cannot be a zero-length string.

/gas/admin/uploadscreenshot.asp, line 17
Avatar billede mansk Nybegynder
21. januar 2003 - 07:59 #8
For mit vedkommende indeholder Upload.Form("file1") ikke noget... den melder ikke fejl, men udskriver til gengæld heller ikke noget... fra Upload.Form("file1")
Avatar billede blaatand Nybegynder
21. januar 2003 - 08:00 #9
<%
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/gas/pagedb.mdb")
   
    Set Upload = Server.CreateObject("Persits.Upload.1")
    Count = Upload.SaveVirtual("/gas/admin/screenshots")
    Response.Write Count & " fil(er) modtaget. du kan se listen af filer her: <a href=upload/files.asp target=_parent class=contentTekst>files</a>"

        strSQL = "INSERT INTO tblUploads (filnavn, dato) VALUES ('" & Upload.Form("file1") & "', Date())"
    objConn.Execute(strSQL)
%>

det er objConn.Execute(strSQL) den ikke kan sige god til
Avatar billede medions Nybegynder
21. januar 2003 - 08:00 #10
Er du sikker på du har en tabel der hedder tblUploads og en kolonne deri derhedder Filnavn?? <- det skal du !

og så husk at sikre dig du uploader noget, altså at feltet ikke er tomt!

//>Rune
Avatar billede blaatand Nybegynder
21. januar 2003 - 08:01 #11
ja, jeg er ret sikker, for ellers får man fejl om at tabellen ikke er der ;)

har også dato med, ellers giver den også fejl jo :)
Avatar billede blaatand Nybegynder
21. januar 2003 - 08:02 #12
du kan selv prøve her hvis det skulle være http://www.jokester.dk/gas/admin/upload.asp

men der er noget med de formsne
Avatar billede mansk Nybegynder
21. januar 2003 - 08:02 #13
Jeg uploader noget - men Upload.Form("file1") indeholder nul og nix - filerne bliver smidt i den mappe de skal - men jeg kan ikke trække filnavnet ud nogen steder...
Avatar billede medions Nybegynder
21. januar 2003 - 08:03 #14
mansk, blaatand> Siden den data i sender fra jeres formularar er krypteret, dekrypter Persits upload det for jer, så derfor skal i i stedet for at skriver Request.Form("feltnavn") bruge komponenten og skrive Upload.Form("feltnavn")

//>Rune
Avatar billede mansk Nybegynder
21. januar 2003 - 08:05 #15
... den er stdig tom... og mine felter hedder FILE1 og FILE2, men der er bare ikke noget output... underligt, for jeg kan sagtens følge dig i det du skriver - men jeg kan sq ikke få filnavnet frem...
Avatar billede blaatand Nybegynder
21. januar 2003 - 08:07 #16
ja, det er det samme for mig...
Avatar billede blaatand Nybegynder
21. januar 2003 - 08:10 #17
Du kan ikke bruge samme form 2 gange eller sådan noget, tror det var det problem jeg havde sidst jeg prøvede og lave det her selv.
Avatar billede mansk Nybegynder
21. januar 2003 - 08:11 #18
blaatand >> bliver dine filer også uploaded korrekt??? Det gør mine, de ligger hvor de skal - men jeg filnavnet kan åbenbart ikke bare trækkes ud. Jeg skal nemlig også have gemt mine filnavne i en database, men kan sq ikke få dem frem!!! :(
Avatar billede blaatand Nybegynder
21. januar 2003 - 08:11 #19
ja, filerne bliver uploaded fint, men den vil ikke skrive til DBen :D
Avatar billede blaatand Nybegynder
21. januar 2003 - 08:28 #20
Nu har jeg testet lidt, og jeg kan få den til at skrive til databasen, men det kræver jeg indsætter en almindelig form, og giver den andet navn... men det er stadig ikke det jeg ville have.
Det er formen et sted den er helt gal med
Avatar billede mansk Nybegynder
21. januar 2003 - 08:33 #21
Halløjsa - nu sker der noget underligt - jeg har ikke prøvet mit script på en server før nu. Jeg har indtil nu, kun prøvet på IIS - nu har jeg lagt det op, og får følgende:
Persits.Upload.1 error '800a0005'

The system cannot find the file specified.

/editall/script.asp, line 13
Her er koden:

10: Set Upload = Server.CreateObject("Persits.Upload.1")
11: Upload.OverwriteFiles = False
12: Upload.Save server.mappath("../img/biler")
Avatar billede mansk Nybegynder
21. januar 2003 - 08:33 #22
Sorry - HER er koden:
11:Set Upload = Server.CreateObject("Persits.Upload.1")
12:Upload.OverwriteFiles = False
13:Upload.Save server.mappath("../img/biler")
Avatar billede blaatand Nybegynder
21. januar 2003 - 09:03 #23
mon medions aka Rune, faldt i søvn over det svære spørgsmål, eller at det ligefrem var for hård ved ham, så han gav op :)
Avatar billede mansk Nybegynder
21. januar 2003 - 10:16 #24
blaatanf her er noget du måske kan bruge... File.ExtractFileName den retunerer filnavnet - så prøv at sætte den ind i din Sql-streng - så kan det være at det virker... jeg modtager stadig fejl på stien - men har fået filnavnet frem vha. File.ExtractFileName
Avatar billede blaatand Nybegynder
21. januar 2003 - 10:17 #25
ok, kigger lige på det, kan da være det er et forsøg værd :)
Avatar billede mansk Nybegynder
21. januar 2003 - 10:21 #26
Nu virker mit i hvert fald - det var bare det der skulle til...
Avatar billede blaatand Nybegynder
21. januar 2003 - 10:23 #27
kool :)

sider lige og er i gang med noget medlems profil redigering og sådan, så må jeg jo lige se hvad jeg kan finde ud af derefter!

post evt din kode så jeg kan kigge efter :D
Avatar billede mansk Nybegynder
21. januar 2003 - 10:27 #28
Jepper - jeg skal vist lige have rettet den til ;-D
Avatar billede blaatand Nybegynder
21. januar 2003 - 10:46 #29
hmm, må gøre noget forkert, for får det ikke rigtig du at du, hehe
Avatar billede blaatand Nybegynder
21. januar 2003 - 10:54 #30
til at du skulle der stå...

må jeg kigge på din kode en gang? :)
Avatar billede mansk Nybegynder
21. januar 2003 - 10:59 #31
Ja - det måtte du - men nu har jeg F***** den op, jeg poster den lige når jeg får den ´til at virke igen...
Avatar billede blaatand Nybegynder
21. januar 2003 - 11:00 #32
lol, hader når sådan noget sker
Avatar billede blaatand Nybegynder
21. januar 2003 - 12:38 #33
Nå, er det helt gået i kage :)
Avatar billede mansk Nybegynder
21. januar 2003 - 13:10 #34
<%

  Set Upload = Server.CreateObject("Persits.Upload.1")
  Upload.OverwriteFiles = False
  Upload.SaveVirtual("biler")
 

  For Each File in Upload.Files

  Dim FileName
  FileName = File.ExtractFileName

  if Err <> 0 Then

      Response.Write "Der er sket en fejl! : " & Err.Description

  Else

      Response.Write "Filen "&FileName&" er uploaded!<br>"

    End If
   
  Next
 
%>
Avatar billede blaatand Nybegynder
21. januar 2003 - 13:16 #35
Jeg kiggede lidt rundt her på siden, og fandt noget jeg tror jeg kan bruge :)

<%

set conn = Server.CreateObject("ADODB.Connection")
Session("MyConn") = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/gas/pagedb.mdb")

    Set Upload = Server.CreateObject("Persits.Upload.1")
      Upload.OverwriteFiles = false
      Upload.SetMaxSize 1000000, True
      Upload.SaveVirtual ("/")
   
    For Each File in Upload.Files
   
        File.ToDatabase Session("MyConn"), "insert into screenshots(screenshots) " &_
        "values('" & File.ExtractFileName & "')"
        if Err <> 0 Then
          Response.Write headerfont & "<br>Der er sket en fejl! : " & Err.Description
       
    Else

          Response.Write headerfont & "<br>Tilføjet...</strong></font>"
   
    End If
      Next
%>

Ser ud til at virke, ret sikker på at det virker...
Avatar billede blaatand Nybegynder
21. januar 2003 - 13:28 #36
Well, i skal sku begge have lidt points for tiden, så får 50 hver :D
Avatar billede mansk Nybegynder
21. januar 2003 - 13:39 #37
takker
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