webForumDet fria alternativet

aspUpload problem!

13 svar · 355 visningar · startad av monAmour

monAmourMedlem sedan dec. 2002258 inlägg
#1

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")
%>
monAmourMedlem sedan dec. 2002258 inlägg
#2

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......

@ndersMedlem sedan juni 200032 969 inlägg
#3

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?)

monAmourMedlem sedan dec. 2002258 inlägg
#4

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å

monAmourMedlem sedan dec. 2002258 inlägg
#5

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".

@ndersMedlem sedan juni 200032 969 inlägg
#6

Ta bort set när du skapar variablerna. Set använder du när du instansierar objekt, inte annars.

monAmourMedlem sedan dec. 2002258 inlägg
#7

Aha tack, måste kikat på ett dåligt kod exempel :D

monAmourMedlem sedan dec. 2002258 inlägg
#8

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!

@ndersMedlem sedan juni 200032 969 inlägg
#9

Timestamp är ett reserverat ord. Byt namn på fältet.

monAmourMedlem sedan dec. 2002258 inlägg
#10

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#)
@ndersMedlem sedan juni 200032 969 inlägg
#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.

monAmourMedlem sedan dec. 2002258 inlägg
#12

Hmmm? Ska mappen ha skrivrättigheter alltså?

@ndersMedlem sedan juni 200032 969 inlägg
#13

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.

monAmourMedlem sedan dec. 2002258 inlägg
#14

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 :D

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)