15. december 2003 - 16:57Der er
18 kommentarer og 1 løsning
AspSmartUpload problem med at omdøbe fil
Nu har jeg rodet i et godt stykke tid efter en måde hvorpå man kan ændre filnavnet på ens fil, som man uploader med aspsmartupload. Jeg har sørget for at der er skriveadgang på min IIS server og at Komponentet er installeret korekt. Hvad er der så galt med dette script?: '******************Kode****************************** <!-- #include file="beskyt.asp" --> <% '******************************************************************************************** Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("<--Databasenavn-->.mdb") Conn.Open DSN
SQL = "Select * FROM VUer WHERE ID=" & Session("ID") Set rs = Conn.Execute(SQL)
strUpnavn = rs("fornavn")
conn.close set conn = nothing '******************************************************************************************** ' Variables ' ********* Dim mySmartUpload Dim intCount
' Object creation ' *************** Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Only allow jpg files ' *************************** mySmartUpload.AllowedFilesList = "jpg,jpeg"
' Trap errors ' *********** If Err Then Response.Write("<b>Wrong selection : </b>" & Err.description) Else ' Display the number of files uploaded ' ************************************
'************************************************************************** ' tilføj data til database '**************************************************************************
Conn.Close set Conn = Nothing '***************************** ' Send videre... '***************************** response.redirect "Billeder.asp?mode=upload" End If %> '**********************kode slut**************' I skal altså koncentrere jer om der hvor jeg gør mit spinkle forsøg på at omdøbe filen der bliver oploaded. Jeg gør opmærksom på at jeg kun vil tillade upload af en fil af gangen
Jeg får denne fejlmelding: Fejltype: Der opstod en Microsoft VBScript-kørselsfejl (0x800A01B6) Objektet understøtter ikke denne egenskab eller metode: 'filename' Upload.asp, line 46 Line 46 er der hvor denne linje er: ------------------------------------ mySmartUpload.filename = strfilnavn ------------------------------------ -Hans
SÅ viser den bare denne fejl: Fejltype: Request-objekt, ASP 0206 (0x80004005) BinaryRead kan ikke kaldes, når Request.Form-samling er brugt. /VUpage/Upload.asp, line 46
Ja det rigtigt man kan ikke bruge request.From når man uploader så skal man bruge upload objectet til at hendte form data, godt nok på samme måde: kat = request.form("kat") Bliver til: kat = mySmartUpload.form("kat")
Dog kan man først det efter man har kaldt .Upload så du skal lige flytte lidt rundt på koden sådan dett her:
'*********************************************************** Randomize StrTal = int((99999999999999*Rnd)+1) kat = request.form("kat") strdato = Now strdato = Split(strDato," ") strdato1 = strdato(0)
hmmm.. Nu laver den så denne fejl... øøøhhh: Fejltype: Request-objekt, ASP 0207 (0x80004005) Request.Form-samling kan ikke bruges, når BinaryRead er kaldt. /VUpage/Upload.asp, line 42
det gælder så også der hvor der skrives til databasen:
rs.AddNew rs("filnavn") = Request("filnavn") & ".jpg" '<---- Er det et FORM item? rs("Filesize") = file.Size & " Bytes" rs("kat") = mySmartUpload.form("kat") rs("Dato") = Now rs.Update
Okay, nu virker så selve omdøbningen... Nu er der så bare denne fejl: Fejltype: aspSmartUpload (0x800A0009) Subscript out of range /VUpage/Upload.asp, line 58 Linjen 58 er denne linje: --------------------- mySmartUpload.Upload --------------------- '************************************************************** '---------------------Jeg skriver lige hele koden igen, så vi er sikre på at vi begge ved hvad jeg har lavet siden vi begyndte-------- <!-- #include file="beskyt.asp" --> <% '******************************************************************************************** Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb") Conn.Open DSN
SQL = "Select * FROM VUer WHERE ID=" & Session("ID") Set rs = Conn.Execute(SQL)
strUpnavn = rs("fornavn")
conn.close set conn = nothing '******************************************************************************************** ' Variables ' ********* Dim mySmartUpload Dim intCount
' Object creation ' *************** Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Only allow jpg files ' *************************** mySmartUpload.AllowedFilesList = "jpg,jpeg"
' Save the files with their original names in a virtual path of the web server ' ****************************************************************************
mySmartUpload.Upload
For each file In mySmartUpload.Files If not file.IsMissing Then
Randomize StrTal = int((99999999999999*Rnd)+1) kat = mySmartUpload.form("kat") strdato = Now strdato = Split(strDato," ") strdato1 = strdato(0)
' Trap errors ' *********** If Err Then Response.Write("<b>Wrong selection : </b>" & Err.description) Else ' Display the number of files uploaded ' ************************************
'************************************************************************** ' tilføj data til database '**************************************************************************
hmmm Nu melder den fejl her: '************************************************************************** ' tilføj data til database '**************************************************************************
Conn.Close set Conn = Nothing '***************************** ' Send videre... '***************************** Fejltype: ADODB.Recordset (0x800A0CB3) Det aktuelle postsæt understøtter ikke opdatering. Det kan skyldes en begrænsing af provideren eller den markerede låsetype. /VUpage/Upload.asp, line 78 Linje 78 er: rs.AddNew -------------------------- Det jeg gerne vil have til at stå i det felt der hedder "filnavn" Jeg filens nye filnavn som jeg har givet den.
Der er to muligheder skal det med i navnet i databasen så tilføje det til strfilnavn valirablen eller så tilføje det til SaveAs, her tilføjet til variablen strfilnavn og med / foran som angiver folderen billeder skal være i roden på serveren.:
Forresten eagleeye - Jeg har set på et af mine tidligere oprettede spørgsmål at jeg er kommet til at snyde dig for nogle points. Det må du undskylde, det har ikke været meningen. Jeg vil derfor gøre det godt igen, ved at jeg lige laver et spørgsmål, så skal du bare ligge et svar derind, så får du points'ene på den måde
- mvh Hans - og undskyld endnu engang ps. Jeg ligger lige endnu en kommentar ind her, når spørgsmålet er oprettet...
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.