28. september 2004 - 15:20Der er
11 kommentarer og 1 løsning
kender i Persits.Upload (problem)
Jeg har følgende kode, den virker "fint" men med en lille twist..
når jeg uploader et jpg billede køre det hele fint, men når jeg prøvet at uploade et gif, BMP esv.. så skriver den stadig JPG i databasen.. men gemmer billedet som sin oprindelige type...
<% Set Upload = Server.CreateObject("Persits.Upload") ' Upload filerne til RAM Upload.Save
' Limit file size to 50000 bytes, throw an exception if file is larger Upload.SetMaxSize 100000, True
' Gem filen med nyt navn For Each File in Upload.Files File.SaveAs ("d:/www2/lz/log/" & Session("ID") & "" & file.Ext) ' File.SaveAs Sever.Mappath("/log/" & session("ID") & "." & file.Ext) Next
' Undgå samme filnavn på to billeder ' Upload.OverwriteFiles = False
' Perform upload
' Count = Upload.SaveVirtual("/log/") If Err then ' 8 is the number of "File too large" exception If Err.Number = 8 Then Response.Write "Billedet er over 100kb. <br><br> <a href=""uploadpic.asp"">Prøv et andet billede.</a>" Else If Err <> 0 Then Response.Write "Der opstod en fejl " & Err.Description Response.Write "<br><br> <a href=""uploadpic.asp"">Prøv igen.</a>" end if end if
else %> <!--#INCLUDE FILE="forbindelse.asp"-->
<% ' Billedestien indsættes i PersonTabel for each file in Upload.Files strSQL = "Update PersonTabel SET Sti = " & Session("ID") & "" & file.Ext & " WHERE PersonID LIKE '" & Session("ID") & "'" myConn.Execute(strSQL) next
' personSQL = "UPDATE PersonTabel Set Billede = 'Ja' WHERE PersonID =" & Session("ID") & "" ' myConn.Execute(personSQL) response.redirect("opdaterbilledesti.asp") end if %>
for each file in Upload.Files Response.Write(Session("ID") & "" & file.Ext & "<br>") strSQL = "Update PersonTabel SET Sti = " & Session("ID") & "" & file.Ext & " WHERE PersonID LIKE '" & Session("ID") & "'" myConn.Execute(strSQL) next
i øvrigt ser det ud til at der mangler et par plinger om stien i SQL'en, så mon der ikke er en fejl? Jeg kunne godt få det indtryk at du har en on error resume next, som vi ikke får at se??
Spm. er om man overhovedet kan loope formen to gange med den komponent?
Jeg bruger denne kode på en anden side, der kan jeg uploade alt...
den neste forskel (har lige sat dem op imod hinanden) er at "fornavnet" på filen ændres til brugerens personid...
her kommer den anden kode lige..
<% Set Upload = Server.CreateObject("Persits.Upload")
' Limit file size to 50000 bytes, throw an exception if file is larger Upload.SetMaxSize 100000, True
' Undgå samme filnavn på to billeder Upload.OverwriteFiles = False
' Perform upload
Count = Upload.SaveVirtual("/log/") If Err then ' 8 is the number of "File too large" exception If Err.Number = 8 Then Response.Write "Billedet er over 100kb. <br><br> <a href=""uploadpic.asp"">Prøv et andet billede.</a>" Else If Err <> 0 Then Response.Write "Der opstod en fejl " & Err.Description Response.Write "<br><br> <a href=""uploadpic.asp"">Prøv igen.</a>" end if end if
else Set myConn = Server.CreateObject("ADODB.Connection") myConn.open = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:/www2/lz/db/db.mdb;" ' Billedestien indsættes i PersonTabel for each file in Upload.Files strSQL = "Update PersonTabel SET Sti = '" & File.ExtractFileName & "' WHERE PersonID LIKE '" & Session("ID") & "'" myConn.Execute(strSQL) next
personSQL = "UPDATE PersonTabel Set Billede = 'Ja' WHERE PersonID =" & Session("ID") & "" myConn.Execute(personSQL) response.redirect("billedevalg.asp") end if %>
Idanielsen dit forslag resultere i følgende:
910.gif
Microsoft JET Database Engine error '80040e14'
Syntax error (missing operator) in query expression '910.gif'.
/uploadscript.asp, line 52
måske forstår du det...
eagleeye din version virker som den anden.. altså kan jeg uploade alt.. det bliver bare ikke opdateret i databasen. og nej.. mit sessions ID indenholder ikke noget punktum.. men det lader til at komme med alligevel.. (se svar til idanielsen
Tak for hjælpen indtil nu og undskyld den lange svartid
Jeg sad lige og tænkte.. jeg ved at mit uploadscript virekede som den var før, men der er jo ikke nogen som siger at det også ville virke når den nu skulle omdøbe billedet og det hele..
men hvordan hulen ville du hive parametret Upload med i del 2 af upload delen.. viser lige hvordan jeg havde tænkt mig at dele det op...
undskyld de store og fyldige indlæg ""GG""
Del 1
<% Set Upload = Server.CreateObject("Persits.Upload") ' Upload filerne til RAM Upload.Save
' Limit file size to 50000 bytes, throw an exception if file is larger Upload.SetMaxSize 100000, True
' Gem filen med nyt navn For Each File in Upload.Files File.SaveAs ("d:/www2/lz/log/" & Session("ID") & "" & file.Ext) ' File.SaveAs Sever.Mappath("/log/" & session("ID") & "." & file.Ext) Next
' Undgå samme filnavn på to billeder ' Upload.OverwriteFiles = False
' Perform upload
' Count = Upload.SaveVirtual("/log/") If Err then ' 8 is the number of "File too large" exception If Err.Number = 8 Then Response.Write "Billedet er over 100kb. <br><br> <a href=""uploadpic.asp"">Prøv et andet billede.</a>" Else If Err <> 0 Then Response.Write "Der opstod en fejl " & Err.Description Response.Write "<br><br> <a href=""uploadpic.asp"">Prøv igen.</a>" end if end if
end if response.redirect("opdaterbilled.asp")
%>
Del 2
<!--#INCLUDE FILE="forbindelse.asp"-->
<% ' Billedestien indsættes i PersonTabel for each file in Upload.Files strSQL = "Update PersonTabel SET Sti = '" & File.ExtractFileName & "' WHERE PersonID LIKE '" & Session("ID") & "'" myConn.Execute(strSQL) next
Problemet er løst, hvad det var må guderne vide, men løsningen blev fundet ved et rent tilfælde, den nye version er bygget lidt om, om det var det der gjorde det ved jeg ikke.. men lad nu det ligge..
' Count = Upload.SaveVirtual("/log/") If Err then ' 8 is the number of "File too large" exception If Err.Number = 8 Then strErr = "Billedet er over 100kb. <br><br> <a href=""uploadpic.asp"">Prøv et andet billede.</a>" Else If Err <> 0 Then strErr = "Der opstod en fejl " & Err.Description strErr = strErr & "<br><br><a href=""uploadpic.asp"">Prøv igen.</a>" end if end if
' Hvis du vil bruge ' tegnet i din fejlmeddelelser, skal du aktivere denne linie: ' strErr = replace(strErr, "'", "\'")
Jamen jeg er nu heller ikke sur, jeg tænkte bare at der var noget jeg ikke havde forstået.
Det lyder nu heller ikke som om du rigtig hat fået løst det ...?
Men det er vel almindelig høflighed at afslutte spørgsmålet i det forum det er rejst. Jeg har ikke rigtig lavet for 60 point arbejde, men jeg var nu slet ikke kommet igang endnu.
eagleeye > beklager at du ikke fik, det er vist en rigtig mandag morgen.
he .. jamen det er jo gudsketak og lov kun mandag en gang om uge ;-)
al magt til tirsdag!
Eagleeye.. der skal nok komme andre spørgsmål og ikke mindst points den vej.. (man er vel en spørge jørgen :-)
Duno :-)
Synes godt om
Ny brugerNybegynder
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.