Kan tillägga att felmeddelandet ser ut så här:
Persits.Upload.1 error '800a0005'
The system cannot find the file specified.
/atv/showreal/upload.asp, line 13
Och rad 13 är just Upload.Save......
13 svar · 355 visningar · startad av monAmour
Hej nu ger jag upp på det här upload skriptet.
Fattar inte varför det inte fungerar.
Har sökt forumet också och läst massa trådar men får inget svar på mitt problem.
Använder nedanstående för att ladda upp 2 filer till mappen "store" som ligger på samma nivå som skriptet alltså:
/root/skript.asp 'ska köra uppladdningen
/root/store 'i mappen store ska allt sparas
Som jag förstått det är det något fel med min sökväg till mappen i Upload.Save skedet.
Tycker dock att jag följt manualens exempel. Har länkat enda ned från www-roten. Vilken stämmer och är korrekt.
Vad ska jag göra?
<%
'Connect to database file
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("showreal.mdb") & ";"
'Upload files and create new db post
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SetMaxSize 5000000, True
Upload.OverwriteFiles = False
'Do upload
Upload.Save("g:\home\albrektson.tv\html\atv\showreal\store")
Sql = "Insert Into showreal Values(0,'" & Upload.Files("movieclip") & "','" & Upload.Files("thumbimg") & "','" & Upload.Form("description") & "',Now())"
Conn.Execute(Sql)
Conn.Close
Set Conn = Nothing
Response.Redirect("showreal.asp")
%>
Kan tillägga att felmeddelandet ser ut så här:
Persits.Upload.1 error '800a0005'
The system cannot find the file specified.
/atv/showreal/upload.asp, line 13
Och rad 13 är just Upload.Save......
Har du provat att använda Server.Mappath() istället för att hårdkoda sökvägen?
(Är g: en hårddisk på samma maskin eller är det en nätverksenhet?)
Har testat server.mappath men med samma resultat.
G:\ vet jag inte om det är en disk eller nätverksenhet.. ligger på webbhotellet. ända jag vet är att de i mina konfigurationspapper står att sökvägen från rooten ser ut så
Så nu har jag fått själva uppladdningen att fungera, det var något strul med skrivrättigheterna på mappen.
Dock får jag ett error nu när jag ska försöka ta ut namnet på filerna jag laddat upp samt formulär fältet "description" som jag vill lägga till i min access databas.
Använder följande nu:
<%
'Connect to database file
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("showreal.mdb") & ";"
'Upload files and create new db post
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SetMaxSize 5000000, True
Upload.OverwriteFiles = True
'Do upload
Upload.Save("g:\home\albrektson.tv\html\atv\showreal\store")
Set Description = Upload.Form("description")
Set MovieFile = Upload.Files("movieclip")
Set ThumbFile = Upload.Files("thumbimg")
Sql = "Insert Into showreal(movieclip,thumbimg,description,timestamp) Values('" & MovieFile & "','" & ThumbFile & "','" & Description & "',Now())"
Conn.Execute(Sql)
Conn.Close
Set Conn = Nothing
Response.Redirect("showreal.asp")
%>
och jag får följande felmeddelande:
Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method
/atv/showreal/upload.asp, line 19
och rad 19 är raden där jag skapar min databasquery med variabeln "Sql".
Ta bort set när du skapar variablerna. Set använder du när du instansierar objekt, inte annars.
Aha tack, måste kikat på ett dåligt kod exempel
Nu funkar uploaden perfekt, och jag hämtar variablerna (filnamnen + formfältets värde).
Dock verkar SQL:en strula nu, använder följande:
Sql = "Insert Into showreal (movieclip,thumbimg,description,timestamp) Values('" & MovieFile & "','" & ThumbFile & "','" & Description & "','" & Now() &"')"
Vilket resulterar i följande när jag skriver ut strängen Sql:
Insert Into showreal (movieclip,thumbimg,description,timestamp) Values('flatscreen.jpg','micke.jpg','asdf asdf asdf','2004-05-09 09:42:47')
Borde inte detta funka även med Access? Får följande error meddelande:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
/atv/showreal/upload.asp, line 21
Help again please!
Timestamp är ett reserverat ord. Byt namn på fältet.
Tack @anders, nu får jag inget syntax error längre. Dock ett annat ogrundligt felmeddelande...!?
Ser ut så här:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.
/atv/showreal/upload.asp, line 22
Vad betyder detta?
Min Query ser ut så här nu efter att ha döpt om timestamp fältet:
'I kod
Sql = "Insert Into showreal (movieclip,thumbimg,description,tstamp) Values('" & MovieFile & "','" & ThumbFile & "','" & Description & "',#" & Now() & "#)"
'Uskriven
Insert Into showreal (movieclip,thumbimg,description,tstamp) Values('flatscreen.jpg','micke.jpg','asdf asdf asdf',#2004-05-09 10:17:11#)
Då har du fel rättigheter satta på mappen databasen ligger i. Ligger det på ett webhotell så ligger databasen i en mapp som inte är avsedd för det.
Hmmm? Ska mappen ha skrivrättigheter alltså?
Det måste vara rättigheter satta på mappen som tillåter att det anonyma internet-gästkontot får skriva och skapa filer. Du bör ha en sådan mapp i ditt konto på webbhotellet, som är avsedd för Access-databaser.
Så har fixat det nu, fick ge mappen och filen skrivrättigheter så ordnade det sig!
Tack för all hjälp med dessa kryptiska error meddelanden