Avatar billede jimpp Nybegynder
12. december 2003 - 22:19 Der er 25 kommentarer og
1 løsning

Problem med ASP Smart Upload

Jeg har et mindre problem med ASP Smart Upload.

Jeg skal uploade et billed, omdøbe og gemme dets navn i en database, sammen med et id, der bliver hentet ind fra denne Querystring: /picupload.asp?type=news&id=1/

<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

  On Error Resume Next
  '  Object creation
  Set upload = Server.CreateObject("aspSmartUpload.SmartUpload")
  'Max størrelse i bytes
  upload.MaxFileSize = 1000000
 
  'Upload filerne til memory
  upload.Upload

  For each file In upload.Files
    If not file.IsMissing Then
      filnavn = "/images/" & request.QueryString("type") & "-" & request.QueryString("id") & "." & file.FileExt
      file.SaveAs filnavn
    end if
  next

  '  Trap errors
  If Err Then
    Response.Write("<b>Wrong selection : </b>" & Err.description)
  End If

  'Gem filnanvet i databasen
  if filnavn <> "" then
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("rater.mdb")

    SQL = "INSERT INTO tablenavn (tilknyt_id, filnavn) VALUES (" & Session("id") & ", '" & filnavn & "')"
    Conn.Execute(SQL)
    Conn.Close
    Set Conn = Nothing
  end if
   
%>
<center> Filen er nu uploaded og gemt </center>
<%
else
%>
<!-- #include file="admintop.inc" -->
<%
set conn = server.CreateObject("ADODB.connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)};"
DSN = DSN & "DBQ=" & server.MapPath("rater.mdb")
conn.open DSN

strSQL = "SELECT * from tbl_news where id=" & Request.QueryString("id")

set rs = Conn.Execute(strSQL)

do until rs.eof

strVis = rs("overskrift")
%>
<tr><td><center><br>Upload et billed til: <b><% Response.Write strVis %></b><br>
<form method="post" action="" ENCTYPE="multipart/form-data">
<input type="file" name="fil1">
<input type="submit" name="Upload" value="Upload">
</form>
</center>
<%
rs.MoveNext
loop
conn.close
set conn = nothing
%>
</td></tr>
</table>
</body>
</html>
<% end if %>

---------------------

Jeg får denne fejl: Wrong selection : Type mismatch
Avatar billede eagleeye Praktikant
12. december 2003 - 22:24 #1
Du kan prøve at tilføje Server.MapPath omkring filnavnet når du gemmer den:

file.SaveAs Server.MapPath(filnavn)
Avatar billede eagleeye Praktikant
12. december 2003 - 22:25 #2
For test kan du prøve at udkommentere den linje med On Error Resume Next:

'On Error Resume Next

Så får du forhåbenlig en bedre fejl kode.
Avatar billede jimpp Nybegynder
12. december 2003 - 22:29 #3
Microsoft VBScript compilation error '800a03ee'

Expected ')'

/Rater/admin/picupload.asp, line 22

filnavn = "/images/" & CStr(request.QueryString("type") & "-" & request.QueryString("id") & "." & file.FileExt
--------------------------------------------------------------------------------------------------------------^

Det giver desværre ikke særligt meget mening hos mig :(
Avatar billede eagleeye Praktikant
12. december 2003 - 22:29 #4
men jeg kan ikke se hvor du overføre ID'et fra form'en og til det som downloader???

<form method="post" action="" ENCTYPE="multipart/form-data">

Det skal ind i Action samt type::

<form method="post" action="?type=<%=Request.QueryString("type")%>&id=<%=Request.QueryString("id")%>" ENCTYPE="multipart/form-data">
Avatar billede eagleeye Praktikant
12. december 2003 - 22:30 #5
Prøv at rtte line 22 til:

filnavn = "/images/" & CStr(request.QueryString("type") & "-" & request.QueryString("id") & "." & file.FileExt)
Avatar billede jimpp Nybegynder
12. december 2003 - 22:36 #6
Har lavet rettelserne - nu får jeg denne fejl.

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'SaveAs'

/Rater/admin/picupload.asp, line 23
Avatar billede eagleeye Praktikant
12. december 2003 - 22:37 #7
Har du prøvet det med server.mappath??

file.SaveAs Server.MapPath(filnavn)
Avatar billede jimpp Nybegynder
12. december 2003 - 22:39 #8
Så kom vi et stykke længere ;)

aspSmartUpload.File error '80040460'

Unable to save file (Error 1120)

/Rater/admin/picupload.asp, line 23
Avatar billede eagleeye Praktikant
12. december 2003 - 22:40 #9
Hvis den stadi melder fejl så prøv at udskrive filnanvet og tjek det er rigtigt.

Sådan her

filnavn = "/images/" & CStr(request.QueryString("type") & "-" & request.QueryString("id") & "." & file.FileExt)
Response.write filnavn
Response.End
file.SaveAs Server.MapPath(filnavn)
Avatar billede eagleeye Praktikant
12. december 2003 - 22:44 #10
Køre scriptet på din egen maskine? Så skal du med Exploren give IUSR_xxxxx skrive rettighed i den folder filen skal gemmes.
Avatar billede jimpp Nybegynder
12. december 2003 - 22:45 #11
/images/news-3.jpg - fil navnet er vist godt nok, men det bliver ikke gemt på serveren.
Avatar billede eagleeye Praktikant
12. december 2003 - 22:47 #12
Ok så det nok rettigheder til den folder som hedder images som skal tjekke og give IUSR_(machinename) skrive rettigheder, lige som beskrivet her:
http://activedeveloper.dk/aspdigital/kapitel2/updateable_query.asp
Har du XP er det noget lidt andet man ska gøre?
Avatar billede jimpp Nybegynder
12. december 2003 - 22:49 #13
Det skal lige siges at informationerne heller ikek bliver gemt i databasen :(
Avatar billede eagleeye Praktikant
12. december 2003 - 22:51 #14
Hvis ikke du har fjernet diss to linjer igen:
Response.write filnavn
Response.End

Så gør lige det ;) for den stopper nemlig også koden.
Avatar billede jimpp Nybegynder
12. december 2003 - 22:51 #15
Okay - mappen ligger på en webserver, og så vidt jeg kan se har jeg fuld adgang til den.

Jeg får hellr ikke den fejl, som artiklen beskriver, dne udfører bare ikke upload :(
Avatar billede eagleeye Praktikant
12. december 2003 - 22:52 #16
Hvor ligger mappen images så i forhold til roden?
Avatar billede eagleeye Praktikant
12. december 2003 - 22:54 #17
Men at du har fuld adgang med et FTP program, betyder ikke at browseren også har fuld adgang. Hvis det er et webhotel som man nogle steder havde dem til at give skrive rettighed til en folder før det virker. Nogle web-hoteller har en specielt folder som db/ hvor man kan ligge databaser. Andre tillader at man kan skrive i samtlige foldere.
Avatar billede jimpp Nybegynder
12. december 2003 - 22:57 #18
Mappen wwwroot/rater/admin/images

Filen wwwroot/rater/admin/

User har fulde rettigheder, i ftp programmet (når jeg klikker på mappen.) Read Write Execute
Avatar billede jimpp Nybegynder
12. december 2003 - 22:58 #19
altså både mappen og filen ligger her. wwwroot/rater/admin/
Avatar billede eagleeye Praktikant
12. december 2003 - 22:59 #20
Så skal du rette stien lidt da en / først betyder root. Så prøv at lave den med filnavnet om til:

filnavn = "/rater/admin/images/" & CStr(request.QueryString("type") & "-" & request.QueryString("id") & "." & file.FileExt)
Avatar billede jimpp Nybegynder
12. december 2003 - 23:00 #21
World og Groupe har ikke skrive rettigheder, og jeg får uknow command, hvis jeg prøver at tildele det?
Avatar billede eagleeye Praktikant
12. december 2003 - 23:01 #22
Det siger mig ikke lige noget??

Eller hvis ASP filen ligger i admin folderen kan du også skrive ./ for current folder så denne skulle give det samme:

filnavn = "./images/" & CStr(request.QueryString("type") & "-" & request.QueryString("id") & "." & file.FileExt)
Avatar billede jimpp Nybegynder
12. december 2003 - 23:06 #23
Så er det begyndt at blive mere banelt :)

Fejlen---

Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/Rater/admin/picupload.asp, line 38



Koden---
  if filnavn <> "" then
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("rater.mdb")

    SQL = "INSERT INTO tbl_pic (tilknyt_id, filnavn) VALUES (" & Session("id") & ", '" & filnavn & "')"
    Conn.Execute(SQL)
    Conn.Close
    Set Conn = Nothing
  end if
Avatar billede eagleeye Praktikant
12. december 2003 - 23:08 #24
Du er sikker på at Session("id") indeholder det samme ID som er i Querystringen ???
Hvis ikke så prøv denne:

SQL = "INSERT INTO tbl_pic (tilknyt_id, filnavn) VALUES (" & request.QueryString("id") & ", '" & filnavn & "')"
Avatar billede jimpp Nybegynder
12. december 2003 - 23:18 #25
Så skal du bare ligge et svar - 1000 tak for din hjælp!
Avatar billede eagleeye Praktikant
12. december 2003 - 23:20 #26
Ok jamen det gør jeg da gerne ;)
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