Avatar billede sesam Nybegynder
25. juli 2002 - 12:43 Der er 54 kommentarer og
1 løsning

Upload af billede

Jeg uploader billede til serveren med dette script
--------------------------------------------------
MyConn = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("profiles/profiles.mdb")   
    For Each File in Upload.Files   
        File.ToDatabase MyConn, "insert into Images(images, username) " &_
        "values('" & File.ExtractFileName & "', '" & upload.form("username") & "')"
        if Err <> 0 Then
          Response.Write headerfont & "<br>Der er sket en fejl! : " & Err.Description
    Else
          Response.Redirect "add_billede.asp?user="& upload.form("username") &""
    End If
    Next    
-------------------------------------------------------
Problemet er at hvis billedet indeholder mellemrum i navnet bliver billedet ikke vist rigtigt, kan det lade sig at at trække navnet sammen så det gemmes som et langt navn eller er der en anden løsning på dette problem?
Avatar billede cms Nybegynder
25. juli 2002 - 12:45 #1
Gemmer du virkelig billedfilerne i databasen?
Avatar billede sesam Nybegynder
25. juli 2002 - 12:47 #2
Nej navnet på billedet og derefter river jeg navnet ud igen?

Hvorfor?
Avatar billede cms Nybegynder
25. juli 2002 - 12:50 #3
Okay! bedre.
Hvordan ser navnet i db'en ud efter det er indsat?
Avatar billede sesam Nybegynder
25. juli 2002 - 12:53 #4
Det indeholder mellemrum.
Jeg bruger derefter AspImage til at lave en thumbnail...
Avatar billede cablenet.dk Nybegynder
25. juli 2002 - 12:56 #5
trim()
Avatar billede sesam Nybegynder
25. juli 2002 - 12:59 #6
Kan du vise mig hvordan?
Avatar billede cms Nybegynder
25. juli 2002 - 13:10 #7
cablenet.dk>> trim() virker sgudda ikke inde midt i en streng!

sesam>> Du bliver nødt til at specificere _præcist_ hvad der går galt hvornår. "Billedet vises ikke rigtigt" - kan jeg ikke bruge. Hvad mener du med det helt præcist?
Hvor opstår fejlen osv.
Ellers bliver det svært at hjælpe dig
Avatar billede sesam Nybegynder
25. juli 2002 - 14:12 #8
Jamen billedet bliver ikke vist -> du ved det røde kryds...

Jeg har tjekket og det er fordi at navnet har mellemrum. Jeg ved ikke hvordan jeg ellers skal forklare mit problem.

Er der ikke en funktion der kan trække navnet sammen?
Avatar billede cms Nybegynder
25. juli 2002 - 16:32 #9
prøv denne:

function RemoveSpaces(Text)
  S = ""
  for I = 1 to Len(Text)
    if Mid(Text, I, 1)<>" " then
      s = s + Mid(Text, I, 1)
  next
  removespaces = s
end function
Avatar billede sesam Nybegynder
26. juli 2002 - 11:23 #10
Og hvordan skal jeg så lige bruge den?
Avatar billede cms Nybegynder
26. juli 2002 - 13:32 #11
Heh - dig kan jeg sku li!
"Er der ikke en funktion der kan trække navnet sammen?" og så gi'r jeg dig en funktion. Så spørger du næsvist hvordan du "så lige" skal bruge den.
I stedet for File.ExtractFileName ovenfor skriver du:

RemoveSpaces(File.ExtractFileName)
Avatar billede sesam Nybegynder
26. juli 2002 - 14:11 #12
Næsvist hvad mener du, jeg er mega grøn indenfor det her:-
Avatar billede cms Nybegynder
26. juli 2002 - 14:49 #13
Sorry - jeg har bare oplevet tusind gange før at få at vide: "Det virker ikke". Jeg mener bare, hvis jeg forsøger at hjælpe, skal personen også forsøge selv.
Så det er muligt jeg blot generaliserer og at bemærkningen slet ikke var ment til dig.

Anyway fungerer funktionen eller melder den stadig fejl? I så fald prøv at højreklikke på billedet med det røde kryds og fortæl mig præcist hvad der står som URL
Avatar billede sesam Nybegynder
26. juli 2002 - 15:00 #14
Det er helt okay - funktionen virker fint, den gemmer trækker navnet sammen, men nu har jeg et andet problem og der er at selve billedet bliver gemt med original billedets navn. Jeg har forsøgt selv at fikse problemet men jeg kan ikke få den til at gemme billedet korrekt.

Vil du hjælpe?
Avatar billede sesam Nybegynder
26. juli 2002 - 15:00 #15
Her er hele koden:

------------------------------
<%
function RemoveSpaces(Text)
  S = ""
  for I = 1 to Len(Text)
    if Mid(Text, I, 1)<>" " then
      s = s + Mid(Text, I, 1)
      end if
  next
  removespaces = s
end function
%>
<%
On Error Resume Next
set conn = Server.CreateObject("ADODB.Connection")   
    Set Upload = Server.CreateObject("Persits.Upload.1")
    Upload.OverwriteFiles = false
      Upload.SetMaxSize 100000, True
      Upload.SaveVirtual ("images/profiler/")
      set persistfil_billede = upload.files("file1")
If Err.Number = 8 Then
  Response.Write "<table border=0 width=500 cellpadding=0 cellspacing=0><tr><td align=center><b>Dit billede fylder for meget, prøv venligst igen.</b></td></tr><tr><td align=center><a href=java script:history.back();>Tilbage</a></td></tr></table>"
else   
  Response.Write "<table border=0 width=500 cellpadding=0 cellspacing=0><tr><td align=center><b>Du skal vælge et billede.</b></tr></td><tr><td align=center><a href=java script:history.back();>Tilbage</a></td></tr></table>"
end if
MyConn = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("profiles/profiles.mdb")   
    For Each File in Upload.Files   
        File.ToDatabase MyConn, "insert into Images(images, username) " &_
        "values('" & RemoveSpaces(File.ExtractFileName) & "', '" & upload.form("username") & "')"
        if Err <> 0 Then
          Response.Write headerfont & "<br>Der er sket en fejl! : " & Err.Description
    Else
    'response.write "hej"
          Response.Redirect "add_billede.asp?user="& upload.form("username") &""
    End If
    Next    


%>
Avatar billede cms Nybegynder
26. juli 2002 - 15:14 #16
Jeg kigger på det
Avatar billede cms Nybegynder
26. juli 2002 - 15:19 #17
Du vil gerne have gemt selve filen i et bibliotek og så navnet på billedfilen i databasen ikke?
Avatar billede cms Nybegynder
26. juli 2002 - 15:21 #18
Er det meningen det skal være muligt at uploade flere billeder ad gangen?
Avatar billede sesam Nybegynder
26. juli 2002 - 15:21 #19
Jo lige præcis...
Avatar billede cms Nybegynder
26. juli 2002 - 15:22 #20
Men kun ét billede right?
Avatar billede sesam Nybegynder
26. juli 2002 - 15:24 #21
Ja, 1 billede
Avatar billede cms Nybegynder
26. juli 2002 - 15:26 #22
Ville det ikke være smart hvis filnavnet var HELT unikt, sådan at flere brugere ikke kom til at overskrive hinandens billeder, hvis nu fx både du og jeg uploadede billeder med navnet "mig.jpg"
Avatar billede sesam Nybegynder
26. juli 2002 - 15:28 #23
Jo, kan man automatisk generere et navn? fx et tal?
Avatar billede cms Nybegynder
26. juli 2002 - 15:40 #24
<%
  Function MakeTemp(Count)
    Dim randchars, S
    randchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678901234567890123456789"
    S = ""
    Randomize
    For I=1 To Count
      S = S + Mid(RandChars, CLng( Rnd * (Len(RandChars)-1) ), 1)
    Next
    MakeTemp = S
  End Function
 
  Function ExtractExt(FN)
    ExtractExt = Mid(FN, InStr(FN, "."))
  End Function
 
  On Error Resume Next
  Set Conn = Server.CreateObject("ADODB.Connection")
  Set Upload = Server.CreateObject("Persits.Upload.1")
  Upload.SetMaxSize 100000, True
 
  Set ImgFile = Upload.Files("file1")
  If Err.Number = 8 Then
    Response.Write "<table border=0 width=500 cellpadding=0 cellspacing=0><tr><td align=center><b>Dit billede fylder for meget, prøv venligst igen.</b></td></tr><tr><td align=center><a href=java script:history.back();>Tilbage</a></td></tr></table>"
  Else
    if Err.Number <> 0 Then
      Response.Write "<table border=0 width=500 cellpadding=0 cellspacing=0><tr><td align=center><b>Du skal vælge et billede.</b></tr></td><tr><td align=center><a href=java script:history.back();>Tilbage</a></td></tr></table>"
    End If
  End If
 
  Dim FName, UploadURL
  FName = MakeTemp(20) & ExtractExt(ImgFile.OriginalFileName)
  UploadURL = "images/profiler/" & FName
  ImgFile.SaveAsVirtual UploadURL
 
  MyConn = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("profiles/profiles.mdb")
  MyConn.Execute("INSERT INTO images (images, username) VALUES ('" & UploadURL & "', '" & Upload.Form("username") & "')")

  If Err <> 0 Then
    Response.Write headerfont & "<br>Der er sket en fejl! : " & Err.Description
  Else
    Response.Redirect "Add_Billede.asp?user=" & Upload.Form("username")
  End If

%>
Avatar billede sesam Nybegynder
26. juli 2002 - 15:43 #25
Jeg får denne fejlmeddelse:
---------------------------
Der er sket en fejl! : Object required
Avatar billede sesam Nybegynder
26. juli 2002 - 15:47 #26
Hvis jeg fjerne -  On Error Resume Next

Får jeg denne fejl:

Microsoft VBScript runtime (0x800A0005)
Invalid procedure call or argument: 'Mid'
Avatar billede cms Nybegynder
26. juli 2002 - 15:47 #27
Oh! Ændr lige den første af MyConn-linjerne til:

Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("profiles/profiles.mdb")
Avatar billede cms Nybegynder
26. juli 2002 - 15:47 #28
og den følgende linje ændrer du MyConn til Conn
Avatar billede sesam Nybegynder
26. juli 2002 - 15:50 #29
Nu får jeg denne fejl:

Microsoft VBScript runtime (0x800A01A8)
Object required: 'ImgFile'
Avatar billede cms Nybegynder
26. juli 2002 - 15:52 #30
Og jeg går ud fra at det er når du sender en fil til scriptet ... ?
Avatar billede sesam Nybegynder
26. juli 2002 - 15:53 #31
Ja
Avatar billede cms Nybegynder
26. juli 2002 - 15:54 #32
som 'file1'
Avatar billede sesam Nybegynder
26. juli 2002 - 15:55 #33
Ja
Avatar billede cms Nybegynder
26. juli 2002 - 16:00 #34
rundt om denne linje:
Set ImgFile = Upload.Files("file1")

put da følgende kode (som er midlertidig - altså blot for at vi kan finde fejlen):

Dim ImgFile
Set ImgFile = Upload.Files("file1")
If ImgFile is Null Then
  Response.Write "null"
ElseIf ImgFile is Nothing Then
  Response.Write "nothing"
ElseIf ImgFile is Empty Then
  Response.Write "empty"
Else
  Response.Write "god"
End If
Response.End

og send så en fil til den
Avatar billede cms Nybegynder
26. juli 2002 - 16:01 #35
Det skal selvfølgelig være samme fil du bruger hele tiden
Avatar billede sesam Nybegynder
26. juli 2002 - 16:03 #36
samme fejl
Avatar billede cms Nybegynder
26. juli 2002 - 16:07 #37
okay udskift nu dennelinje:
Set ImgFile = Upload.Files("file1")

med disse:
Upload.Save
Set ImgFile = Upload.Files("file1")
Avatar billede cms Nybegynder
26. juli 2002 - 16:07 #38
og du kan godt fjerne den midlertidige kode
Avatar billede sesam Nybegynder
26. juli 2002 - 16:08 #39
Fejlen er Object required linie 31 og i den linie står der: If ImgFile is Null Then
Avatar billede sesam Nybegynder
26. juli 2002 - 16:09 #40
Denne fejl:

Invalid procedure call or argument: 'Mid'

Linie 14: = S = S + Mid(RandChars, CLng( Rnd * (Len(RandChars)-1) ), 1)
Avatar billede cms Nybegynder
26. juli 2002 - 16:11 #41
S = S + Mid(RandChars, CLng( Rnd * (Len(RandChars)-2) +1 ), 1)
Avatar billede sesam Nybegynder
26. juli 2002 - 16:13 #42
Fejl i linie 46:  Conn.Execute("INSERT INTO images (images, username) VALUES ('" & UploadURL & "', '" & Upload.Form("username") & "')")

Object required: 'Conn'
Avatar billede cms Nybegynder
26. juli 2002 - 16:19 #43
de to linjer efter Img.SaveAsVirtual... skal se sådan ud:

Conn.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("profiles/profiles.mdb"))
Conn.Execute("INSERT INTO images (images, username) VALUES ('" & UploadURL & "', '" & Upload.Form("username") & "')")
Avatar billede sesam Nybegynder
26. juli 2002 - 16:28 #44
Det virker nu...Lige 2 sek...
Avatar billede cms Nybegynder
26. juli 2002 - 16:30 #45
@
Avatar billede sesam Nybegynder
26. juli 2002 - 16:45 #46
Desværre cms:
Jeg har lige uploadet og kørt scriptet, men det virker sku' ik -> men lokat gør det?

Jeg får denne fejl
------------------------------------------
Wrong number of arguments or invalid property assignment: 'Save'

linie 27:  Upload.Save

Du skal nok få nogle flere point
Avatar billede cms Nybegynder
26. juli 2002 - 16:54 #47
Upload.SaveToMemory
Avatar billede sesam Nybegynder
26. juli 2002 - 16:59 #48
Nu får jeg denne fejl:

Object doesn't support this property or method: 'ImgFile.OriginalFileName'

Du må umdskylde at jeg er lidt fat svag....
Avatar billede cms Nybegynder
26. juli 2002 - 17:20 #49
Det er såmændt fordi din server bruger en ældre version. Jeg har ikke mere tid idag, måske du kunne stille dette nye spørgsmål igen i denne kategori
Avatar billede sesam Nybegynder
27. juli 2002 - 11:40 #50
Ok tusinde tak for hjælpen - selvom det ikke virker...:)
Avatar billede cms Nybegynder
27. juli 2002 - 16:33 #51
Arh - det virker da til den nyeste ASPUpload :) I virkeligheden burde du tale med din udbyder og be' dem opgradere deres version.
Avatar billede sif4ever Nybegynder
31. juli 2002 - 21:02 #52
Fat du nogensinde en løsning?
Avatar billede cms Nybegynder
31. juli 2002 - 22:21 #53
Han oprettede en opgave på sharksforum, som nu er lukket, så det vil jeg tro
Avatar billede sesam Nybegynder
03. august 2002 - 17:27 #54
Ja jeg fik Erik the man Jacobsen til at hjælpe mig...
Avatar billede sif4ever Nybegynder
04. august 2002 - 01:00 #55
Må man se scriptet?
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