webForumDet fria alternativet

Upload med kompontent

12 svar · 238 visningar · startad av janfang

janfangMedlem sedan okt. 200058 inlägg
#1

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
#2

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&auml;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
#3

Är det någon som har en lösning på mitt uppladdningsproblem?

/ Jan.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

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
#5

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
#6

Du har glömt att sätta ENCTYPE på formuläret.

janfangMedlem sedan okt. 200058 inlägg
#7

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]

doggelitoMedlem sedan juni 20003 076 inlägg
#8

du måste nog skriva:
mySmartUpload.Form("namn")
istället för request.

------------------
Motto: Flest If-taggar vinner!

janfangMedlem sedan okt. 200058 inlägg
#9

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
#10

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
#11

kolla på

www.aspsmart.com

[Redigerat av janfang den 11 jan 2002]

@ndersMedlem sedan juni 200032 969 inlägg
#12

ASPSmartUpload är gratis.

Du hittar den på http://www.aspsmart.com .

Mvh,

janfangMedlem sedan okt. 200058 inlägg
#13

Tack för hjälpen,
Nu funkar det. Jag justerade upload-koden mot en annan som fanns på hemsidan.

/ Jan.

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