webForumDet fria alternativet

Upload error?

ASPur ASP

13 svar · 468 visningar · startad av tomas21

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

Peeers avatarPeeerMedlem 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

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

@nderss avatar@ndersMedlem 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

tomas21Medlem sedan feb. 2003130 inlägg
#5

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

@nderss avatar@ndersMedlem 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?

tomas21Medlem 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

tomas21Medlem 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å?

@nderss avatar@ndersMedlem 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.

tomas21Medlem 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

@nderss avatar@ndersMedlem sedan juni 200032 969 inlägg
#11

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

tomas21Medlem sedan feb. 2003130 inlägg
#12

I skripten som laddar upp till databasen?

Peeers avatarPeeerMedlem 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

tomas21Medlem sedan feb. 2003130 inlägg
#14

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

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