webForumDet fria alternativet

Upload error?

ASPur ASP

13 svar · 468 visningar · startad av tomas21

Medlem sedan feb. 2003130 inlägg
Frågan#1

Hej!
Jag håller på med att göra en upload funktion som laddar upp bilder till servern. Men jag får det inte att fungera:

Koden:


	 Dim mySmartUpload
	 Dim intCount
        
         Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

         mySmartUpload.Upload

         '  Save the files with their original names in a virtual path of the web server
         '  ****************************************************************************
         'intCount = mySmartUpload.Save("/aspSmartUpload/Upload")
         ' sample with a physical path 
         intCount = mySmartUpload.Save("../bilder/")
 
         '  Display the number of files uploaded
         '  ************************************
         Response.Write(intCount & " fil är uppladdad.")

Jag får detta felmedelande:

Request object error 'ASP 0206 : 80004005'
Cannot call BinaryRead
/admin/administration.asp, line 691
Cannot call BinaryRead after using Request.Form collection.

Notera att rad 691 är den rad som det står:

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

Den är under

Dim mySmartUpload
	 Dim intCount

Hoppas att någon kan hjälpa mig.

Medlem sedan mars 20025 907 inlägg
#2

Det är inte så att du någonstans längre upp i koden hämtar in data mha. request.form() ? Har för mig att det inte går att använda båda sorterna samtidigt, utan du istället får hämta in datan (text från formuläret) mha. mySmartUpload.Form

Medlem sedan feb. 2003130 inlägg
#3

Peer jag förstår inte vad du menar?

Detta är formuläret för upload:

För att lägga till en bild för elementet  fyll i formuläret
nedan och klicka på skapa bild.<br><br>

<form method="POST" action="administration.asp?do=nybild1&id=78" ENCTYPE="multipart/form-data">
   <input type="FILE" name="FILE1" size="50"><br>
   <input type="SUBMIT" value="Ladda Upp Bild">
</form>

Du ser att när man klickar på knappen på formuläret så kommer den att gå till if satsen som finns under do=nybild den if satsen innehåller koden ovan. Andra har provat denna upload med hjälp av formuläret det funkade. Men jag förstår inte vad jag gör för fel.

Medlem sedan juni 200032 969 inlägg
#4

Du får inte använda Request.Form när du laddar upp filer. Du får istället använda uppladdningskomponentens motsvarande funktion, dvs istället för

strNågonting = Request.Form("någonting")

får du skriva

strNågonting = mySmartUpload.Form("någonting")

Observera att du måste ha kört mySmartUpload.Upload i koden innan du försöker hämta andra formulärfält.

mvh

Medlem sedan feb. 2003130 inlägg
#5

@anders men jag använder ju inte någon request.form

Medlem sedan juni 200032 969 inlägg
#6

Inte någonstans på den asp-sidan?
Det verkade ju vara ganska många rader på den?

Hittar du verkligen ingenting om du söker igenom asp-dokumentet efter request.form?

Medlem sedan feb. 2003130 inlägg
#7

Innan Upload koden har jag lagt in en annan kod som lägger in bilden i en databas. Den koden är en sql sats som väljer vart i databasen vi ska spara namnet på bilden där finns det då koden request.form("FILE1").
Men det jag inte förstår är varför denna ska krångla. Den ligger ju inte i själva upload skripten. Den körs före och sen slutar den.

Koden för upload och den som lägger in i databasen ligger i samma if sats som är do=nybild

Medlem sedan feb. 2003130 inlägg
#8

Om man ändrar så att upload skriptet ligger före skriptet som man laddar upp till databasen borde det funka då?

Medlem sedan juni 200032 969 inlägg
#9

Det spelar ingen roll. Innan du skall använda Form collection, intansiera mySmartUpload och kör metoden Upload. Använd sedan mySmartUpload.Form.

Medlem sedan feb. 2003130 inlägg
#10

@nders jag förstår inte vart jag ska skriva mySmartUpload.Form skulle du kunna redigera mitt skript längst upp på sidan för att visa vart jag ska ändra till mySmartUpload.Form

Medlem sedan juni 200032 969 inlägg
#11

Det är bara att byta Request.Form("blah") till mySmartUpload.Form("blah"). Det är inga konstigheter.

Medlem sedan feb. 2003130 inlägg
#12

I skripten som laddar upp till databasen?

Medlem sedan mars 20025 907 inlägg
#13

Flytta upp de här raderna ovansför din sql-sats.

Dim mySmartUpload
Dim intCount
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

och ersätt request.form("FILE1") i sql-satsen mot mySmartUpload.Files.Item(1).FileName

Medlem sedan feb. 2003130 inlägg
#14

Tack peer och @nders jag ska testa era förslag.

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