janfangMedlem sedan okt. 200058 inlägg Hej,
Jag har problem med upload. Jag använder komponenten ASPsmartUpload. Jag får felet
Subscript out of range
när jag ska ladda upp en fil i en form blandat med andra fält. Vad betyder "subscript out of range"?
[Redigerat av janfang den 10 jan 2002]
janfangMedlem sedan okt. 200058 inlägg Hej, här kommer koden också. Jag tror det är något som rör till sig när jag både vill plocka ut text ur fält och ladda upp filer samt att jag vill ha in filnamnet i databasen.
/ Jan.
Formkoden jag använder, lite förenklad utan tabeller:
<form name="SKRIV" method="post" action="adderaPost.asp">
<b>Namn</b> <input type="text" name="namn" size="30" maxlength="20"><br>
<b>Epost</b> <input type="text" name="epost" size="30" maxlength="50"><br>
<b>Rubrik</b> <input type="text" name="rubrik" size="30" maxlength="40" ><br>
<b>Ljudfil</b> <input type="FILE" name="file" size="25">
<b>Inlägg</b><br>
<textarea name="inlagg" cols="40" rows="10"></textarea>
<input type="submit" name="Submit" value="Posta">
</form>
adderaPost.asp ser sedan ut ungefär så här:
'########## Ladda upp fil på servern med kod här nedan.
On Error Resume Next
' Variables
' *********
Dim mySmartUpload
Dim intCount
Dim file
' Object creation
' ***************
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Only allow these files
' ***************************
mySmartUpload.AllowedFilesList = "qcp,mp3"
' Deny physical path
' *******************
mySmartUpload.DenyPhysicalPath = True
' *****************************************
mySmartUpload.MaxFileSize = 400000
' ***************************************************************
mySmartUpload.TotalMaxFileSize = 400000
' Upload
' ******
mySmartUpload.Upload
' Save the files with their original names in a virtual path of the web server
' ****************************************************************************
intCount = mySmartUpload.Save("../upload/ljudfiler")
' sample with a physical path
' intCount = mySmartUpload.Save("c:\temp\")
' Trap errors
' ***********
If Err Then
Response.Write("<b>Fel : </b>" & Err.description)
Else
' Display the number of files uploaded
' ************************************
Response.Write(intCount & " file(s) uploaded.")
End If
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/ljudforum.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From ljudforum"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
RecSet.ADDNEW
RecSet("NAMN") = Request.Form("namn")
RecSet("EPOST") = Request.Form("epost")
RecSet("RUBRIK") = Request.Form("rubrik")
RecSet("INLAGG") = Request.Form("inlagg")
RecSet("IP") = Request.ServerVariables("REMOTE_ADDR")
RecSet("DATUM") = NOW()
RecSet("LJUDFIL") = file.FileName
IF Request.QueryString("refID") <> "" THEN
RecSet("REF_ID") = Request.QueryString("refID")
END IF
RecSet.UPDATE
RecSet.CLOSE
mySmartUpload.CLOSE
janfangMedlem sedan okt. 200058 inlägg Är det någon som har en lösning på mitt uppladdningsproblem?
/ Jan.
LarsGMedlem sedan dec. 200012 464 inlägg Vilken rad får du fel på?
Testa detta i stället.
RecSet("NAMN") = mySmartUpload.Form("namn")
RecSet("EPOST") = mySmartUpload.Form("epost")
RecSet("RUBRIK") = mySmartUpload.Form("rubrik")
RecSet("INLAGG") = mySmartUpload.Form("inlagg")
------------------
essentitia preter non sans multiplicandum
janfangMedlem sedan okt. 200058 inlägg Hej,
det är ju att jag får inte fel på någon speciell rad. Det är iaf uppladdningsscriptet som ger ifrån sig felmeddelandet som jag hade först.
Ska ta och testa din kod...
*****
Redigerat. Med koden
RecSet("NAMN") = mySmartUpload.Form("namn")
RecSet("EPOST") = mySmartUpload.Form("epost")
RecSet("RUBRIK") = mySmartUpload.Form("rubrik")
RecSet("INLAGG") = mySmartUpload.Form("inlagg")
kommer inget in i databasen och inga filer laddas upp. Jag såg just en sak, måste man inte binda ihop fältet "file" i formen med uploadscriptet på något sätt, hur gör man detta i så fall?
/ Jan.
[Redigerat av janfang den 10 jan 2002]
[Redigerat av janfang den 10 jan 2002]
[Redigerat av janfang den 10 jan 2002]
emissionMedlem sedan dec. 19996 721 inlägg Du har glömt att sätta ENCTYPE på formuläret.
janfangMedlem sedan okt. 200058 inlägg Hej,
ENCTYPE="multipart/form-data" löste filuppladdningsproblemet, men nu blir alla andra rutor tomma. Alltså när jag tar Request.form("namn") blir det tomt.
Ska jag använda något annat än "multipart/form-data"?
[Redigerat av janfang den 11 jan 2002]
du måste nog skriva:
mySmartUpload.Form("namn")
istället för request.
------------------
Motto: Flest If-taggar vinner!
janfangMedlem sedan okt. 200058 inlägg Tackar så mycket, nu funkar nästan allt... Det är bara filnamnet som inte läggs in i min databas.
Jag har då testat att lägga in det med raden RecSet("LJUDFIL") = file.FileName
Jag har även testat och bytt ut file mot mySmartUpload, men det funkar ändå inte. Det kommer in ett mellanslag i databasfältet.
/ Jan.
JacekMedlem sedan apr. 2000169 inlägg vart är det man hittar ASPsmartUpload, vart kan man köpa det?
------------------
Mikael Tyrsén
</www.tyrsen.nu>
</mikael@tyrsen.nu>
janfangMedlem sedan okt. 200058 inlägg kolla på
www.aspsmart.com
[Redigerat av janfang den 11 jan 2002]
@ndersMedlem sedan juni 200032 969 inlägg ASPSmartUpload är gratis.
Du hittar den på http://www.aspsmart.com .
Mvh,
janfangMedlem sedan okt. 200058 inlägg Tack för hjälpen,
Nu funkar det. Jag justerade upload-koden mot en annan som fanns på hemsidan.
/ Jan.