Avatar billede tzag_dk Nybegynder
10. marts 2004 - 12:05 Der er 21 kommentarer og
1 løsning

AspSmartUpload fejler

Hej

Jeg kan ikke få dette til at virke:

<HTML>
<LINK href="/css/style.css" type=text/css rel=stylesheet>
<BODY BGCOLOR="white">
<!--#include virtual="/secure/connection.asp"-->
<% If Request.QueryString("mode") = "upload" then

SQL = "insert into hotbilleder (profilerID,beskrivelse,godkendt) values('" & request.QueryString("profilerID") & "','" & request.Form("beskrivelse") & "','0')"
Conn.execute(SQL)

SQL2 = "SELECT last_insert_id() FROM hotbilleder"
Set RS = Conn.Execute(SQL2)
nytID = RS(0)

'  Variables
'  *********
  Dim mySmartUpload
  Dim file
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.AllowedFilesList = "jpg,jpeg,gif"
  mySmartUpload.DenyPhysicalPath = True
  mySmartUpload.MaxFileSize = 200000

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

  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then
      '  Save the files with his original names in a virtual path of the web server
      '  ****************************************************************************
        file.SaveAs("/images/hotbilleder/" & nytID&.FileExt)

SQL = "UPDATE hotbilleder SET billede = '" & nytID&.FileExt & "' WHERE id = " & nytID
Conn.execute(SQL)
end if

else
sqlfind="Select Count(*) as Found from hotbilleder where (profilerID = '" & Session("id") & "')"
set RSfind = Conn.execute(sqlfind)

if RSfind("Found") = "5" then%>
Du kan højst have 5 hot billeder.
<% else %>
Tilf&oslash;j hot billede!<br>
<br>

<FORM METHOD="POST" ACTION="upload.asp?mode=upload&profilerID=<%request.QueryString("id")%>" ENCTYPE="multipart/form-data">
  <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
  <textarea name="beskrivelse" cols="40" rows="5"></textarea>
  <br>
  <INPUT TYPE="SUBMIT" VALUE="Tilføj">
</FORM>
<% end if %>
<% end if %>
</BODY>
</HTML>

Den kommer fint nok frem med min "file" og mit "textfield",
men når jeg så skal uploade billedet og tilføje i db, så laver den bare "Der opstod en intern HTTP 500-serverfejl" og "Siden kan ikke vises"

Hjæælp...

På forhånd tak!
// Rene
Avatar billede keysersoze Ekspert
10. marts 2004 - 12:21 #1
funktioner -> internetindstillinger -> avanceret -> fjerne kryds i "vis meddelelse om uskadelige http-fejl"

hvis ikke du gør ovenstående er det umuligt at være web-programmør :)
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 12:24 #2
ok, det viste jeg ikke :-) hehe

Nu kommer den med denne fejl:

Request object error 'ASP 0206 : 80004005'

Cannot call BinaryRead

/profil/hotbilleder/upload.asp, line 28

Cannot call BinaryRead after using Request.Form collection.
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 12:25 #3
Linje 28: mySmartUpload.Upload
Avatar billede cesil Nybegynder
10. marts 2004 - 12:26 #4
brug upload.form istedet for request.form
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 12:30 #5
cesil >> Det er jeg ikke helt med på hvad du mener?
Avatar billede keysersoze Ekspert
10. marts 2004 - 12:36 #6
du skal flytte

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

helt op i toppen af siden som det første.

Dernæst kan du ikke når du uploader på den måde benytte request.form("XXX") - men i stedet bliver nødt til at benytte mySmartUpload.form("XXX")
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 12:42 #7
Så er det gjort, men nu kommer denne fejl :-)

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/profil/hotbilleder/upload.asp, line 33

Linje 33: If not file.IsMissing Then
Avatar billede keysersoze Ekspert
10. marts 2004 - 12:48 #8
du har ikke initialiseret "file" på noget måde, så scriptet ved ikke hvad "file" er for noget
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 12:56 #9
ok, men jeg er ikke så skarp til det med billeder, så hvordan initialiser jeg file?
Avatar billede keysersoze Ekspert
10. marts 2004 - 13:36 #10
Fx

For each file In mySmartUpload.Files
'kode
Next
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 14:18 #11
Hej igen...

Nu har jeg forsøgt med det her:
<HTML>
<LINK href="/css/style.css" type=text/css rel=stylesheet>
<BODY BGCOLOR="white">
<!--#include virtual="/secure/connection.asp"-->
<% If Request.QueryString("mode") = "upload" then

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
SQL = "insert into hotbilleder (profilerID,beskrivelse,godkendt) values('" & request.QueryString("profilerID") & "','" & mySmartUpload.Form("beskrivelse") & "','0')"
Conn.execute(SQL)

SQL2 = "SELECT last_insert_id() FROM hotbilleder"
Set RS = Conn.Execute(SQL2)
nytID = RS(0)

For each file In mySmartUpload.Files

  Dim mySmartUpload
  Dim file
       
 
  mySmartUpload.AllowedFilesList = "jpg,jpeg,gif"
  mySmartUpload.DenyPhysicalPath = True
  mySmartUpload.MaxFileSize = 200000

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

  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then
      '  Save the files with his original names in a virtual path of the web server
      '  ****************************************************************************
        file.SaveAs("/images/hotbilleder/" & nytID&file.FileName)

SQL = "UPDATE hotbilleder SET billede = '" & nytID&file.FileName & "' WHERE profilerID = '" & request.QueryString("profilerID") & "'"
Conn.execute(SQL)
end if
Next

else
sqlfind="Select Count(*) as Found from hotbilleder where (profilerID = '" & Session("id") & "')"
set RSfind = Conn.execute(sqlfind)

if RSfind("Found") = "5" then%>
Du kan højst have 5 hot billeder.
<% else %>
Tilf&oslash;j hot billede!<br>
<br>

<FORM METHOD="POST" ACTION="upload.asp?mode=upload&profilerID=<%request.QueryString("id")%>" ENCTYPE="multipart/form-data">
  <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
  <textarea name="beskrivelse" cols="40" rows="5"></textarea>
  <br>
  <INPUT TYPE="SUBMIT" VALUE="Tilføj">
</FORM>
<% end if %>
<% end if %>
</BODY>
</HTML>

Den kommer ikke med nogle fejl, men den uploader ikke billedet, dog til føjer den i db men der kommer ikke noget data i db :-(

Jeg kan ikke se hvad jeg gør galt??

// Rene
Avatar billede keysersoze Ekspert
10. marts 2004 - 14:28 #12
prøv først at finde ud af om scriptet i det hele taget kommer ind i For-løkke - ved fx bare at skrive

Response.write "kommer dette med"

inde i løkken.

Er der ingen problemer i det og der altså udskrives noget på siden så flyt linien ned under din "If not file.IsMissing Then" sætning for at se om scriptet når dertil etc... på den måde kan du måske se hvor scriptet fejler
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 14:34 #13
ok... hvis jeg skriver det inde i løkken, skriver den ikke noget. Men hvis jeg sætter den lige over løkken, så skriver den det.
Avatar billede keysersoze Ekspert
10. marts 2004 - 14:36 #14
så er det jo fordi løkken slet ikke bliver kørt - og det gør den fordi der ikke er uploadet noget...

flyt

Dim mySmartUpload
  Dim file
       
 
  mySmartUpload.AllowedFilesList = "jpg,jpeg,gif"
  mySmartUpload.DenyPhysicalPath = True
  mySmartUpload.MaxFileSize = 200000

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

uden for løkken - op over selvfølgelig
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 14:50 #15
Jeg har fået den til at uploade billedet ved at flytte start af løkken længere ned.
Det eneste problem er at den ikke insætter noget data i db med "insert".

Her er koden:

<HTML>
<LINK href="/css/style.css" type=text/css rel=stylesheet>
<BODY BGCOLOR="white">
<!--#include virtual="/secure/connection.asp"-->
<% If Request.QueryString("mode") = "upload" then

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
SQL = "insert into hotbilleder (profilerID,dato,beskrivelse,godkendt,billede) values('" & request.QueryString("profilerID") & "','" & now & "','" & mySmartUpload.Form("beskrivelse") & "','0','')"
Conn.execute(SQL)

SQL2 = "SELECT last_insert_id() FROM hotbilleder"
Set RS = Conn.Execute(SQL2)
nytID = RS(0)



  Dim mySmartUpload
  Dim file
       
 
  mySmartUpload.AllowedFilesList = "jpg,jpeg,gif"
  mySmartUpload.DenyPhysicalPath = True
  mySmartUpload.MaxFileSize = 200000

'  Upload
'  ******
  mySmartUpload.Upload
For each file In mySmartUpload.Files
Response.write "kommer dette med"
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then
      '  Save the files with his original names in a virtual path of the web server
      '  ****************************************************************************
        file.SaveAs("/images/hotbilleder/" & nytID&file.FileName)

SQL = "UPDATE hotbilleder SET billede = '" & nytID&file.FileName & "' WHERE profilerID = '" & request.QueryString("profilerID") & "'"
Conn.execute(SQL)
end if
Next

else
sqlfind="Select Count(*) as Found from hotbilleder where (profilerID = '" & Session("id") & "')"
set RSfind = Conn.execute(sqlfind)

if RSfind("Found") = "5" then%>
Du kan højst have 5 hot billeder.
<% else %>
Tilf&oslash;j hot billede!<br>
<br>

<FORM METHOD="POST" ACTION="upload.asp?mode=upload&profilerID=<%request.QueryString("id")%>" ENCTYPE="multipart/form-data">
  <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
  <textarea name="beskrivelse" cols="40" rows="5"></textarea>
  <br>
  <INPUT TYPE="SUBMIT" VALUE="Tilføj">
</FORM>
<% end if %>
<% end if %>
</BODY>
</HTML>
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 14:59 #16
Den skriver kun dato og billed navn ind i db :-(
Avatar billede keysersoze Ekspert
10. marts 2004 - 15:11 #17
www.aspsmart.com - deres dokumentation og eksempler er nu ganske fremragende

grunden til at filen ikke gemmes er at du ikke har fortalt scriptet at du vil have den gemt;

file.SaveAs("/Upload/" & file.FileName)
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 15:17 #18
filen gemmes også, som jeg skrev tidligere oppe.
Det eneste der gemmes i db er dato og billede navn.

Du kan se i den sidste kode hvad der er galt.
Avatar billede keysersoze Ekspert
10. marts 2004 - 15:20 #19
så er jeg ikke helt med - du siger et sted at der skrives dato og billednavn ind i databasen - men et andet sted at der ikke indsættes data?
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 15:29 #20
ja, jeg har denne her:
SQL = "insert into hotbilleder (profilerID,dato,beskrivelse,godkendt,billede) values('" & request.QueryString("profilerID") & "','" & now & "','" & mySmartUpload.Form("beskrivelse") & "','0','')"
Conn.execute(SQL)

Det eneste den skriver ind her er: dato med "now"

Og så henter jeg det sidste indsat id med:
SQL2 = "SELECT last_insert_id() FROM hotbilleder"
Set RS = Conn.Execute(SQL2)
nytID = RS(0)

Så uploader jeg billedet, det virker også fint nok.

Tilsidst updater jeg db med denne:
SQL = "UPDATE hotbilleder SET billede = '" & nytID&file.FileName & "' WHERE profilerID = '" & request.QueryString("profilerID") & "'"
Conn.execute(SQL)


Oppe i min insert insætter den kun dato.
Er du med nu? :-)
Avatar billede keysersoze Ekspert
10. marts 2004 - 15:37 #21
prøv lige efter din linie med "Set mySmartUpload =..." at udskriv de værdier du forsøger at hente - måske er der stavefejl eller andet;

response.write request.QueryString("profilerID")
response.write request("profilerID")
etc

indtil du (måske) fanger noget

sæt evt en response.end for ikke at køre hele scriptet igennem ved hver test
Avatar billede tzag_dk Nybegynder
10. marts 2004 - 15:55 #22
Jeg siger mange tak for hjælpen :-)
Jeg fik det til at virke.
Fik ikke mit id med over i insert, og mht mit tekstfield så tilføjer jeg den efter :-)

// Rene
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