Innan anropet till mySmartUpload.Upload
så har du använt
v = request.form("fieldName")
eller liknande och det får man inte. För att komma åt värden i form-samlingen måste du använda mysmartupload-objektet.
27 svar · 434 visningar · startad av M@rtin
Det här är antagligen det vnaligaste och enklaste felet som finns i aspsmartupload men jag har aldrig använt det förut så jag vet inte vad som är fel.
Får detta felmmeddelande:
Det går inte att anropa BinaryRead efter att samlingen Request.Form har använts.
Och på raden det är fel på står det:
mySmartUpload.Upload
Koden som har med komponenten att göra ser ut så här:
Dim mySmartUpload
Dim intCount
set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.Upload
intCount = mySmartUpload.Save("../upload")
Innan anropet till mySmartUpload.Upload
så har du använt
v = request.form("fieldName")
eller liknande och det får man inte. För att komma åt värden i form-samlingen måste du använda mysmartupload-objektet.
Aha!
Hur ser det ut då?
typ mySmartupload. vad skriver jag efter punkten om jag vill hämta värdet i en textruta med namnet "hej" typ?
mySmartUpload.Form("fieldname")
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Ladda upp
mySmartUpload.Upload
namn = mySmartUpload.Form("hej")
Men hmm... får "Objektet krävs"
Jag måste använda mySmartUpload.Form("hej") innan mySmartUpload.Upload men det spelar väl ingen roll?
Du måste nog definiera mysmartupload innan det...
Lägg:
' Variables
' *********
Dim mySmartUpload
Dim intCount
' Object creation
' ***************
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.Upload
Högst uppe
Heh.. pinsamt fel.. hade inga <% %> runt
Men jag får ändå att mySmartUpload.Form("hej") alltid är tomt.
Eller jag har det såhär:
if mySmartUpload.Form("category")<>"" then
Men det blir aldrig sant. Och det är inget annat fel vet jag för det funkade innan jag bytte ut Request.
Jag måste använda mySmartUpload.Form("hej") innan mySmartUpload.Upload men det spelar väl ingen roll?
Jo.
mySmartUpload.Form
är tom innan du gör .upload
Gör jag det innan får jag "subscript out of range"
Här är ett komplett exempel på det jag vill göra:
<html>
<head>
</head>
<body>
<%
Dim mySmartUpload
Dim intCount
set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.Upload
if mySmartUpload.Form("hej") <> "" then %>
response.write mySmartUpload.Form("hej")
else
%>
<form name="hej" action="smartuploadform" method="post">
<input type="text" name="hej">
<input type="submit" value="skicka">
</form>
<%
end if
%>
</body>
</html>
if mySmartUpload.Form("hej") <> "" then %>
response.write mySmartUpload.Form("hej")
Varför är det blåa med?
red: Så fett blev det inte.
Aj det var ju en miss. Men det blir samma fel ändå
Ingen som kan komma på vad som e fel?
Eftersom det är så enkel kod så antar jag att det inte är något fel på koden utan snarare på aspSmartUpload filerna men alla exempel fungerar utmärkt.
Du måste visa koden som blir fel. Omöjligt annars.
Det har jag ju gjort
<html>
<head>
</head>
<body>
<%
Dim mySmartUpload
Dim intCount
set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.Upload
if mySmartUpload.Form("hej") <> "" then %>
response.write mySmartUpload.Form("hej")
else
%>
<form name="hej" action="smartuploadform" method="post">
<input type="file" name="hej">
<input type="submit" value="skicka">
</form>
<%
end if
%>
</body>
</html>
Ger "Subscript out of range"
Vad vill du testa egentligen? Om fältet hej innehåller något värde eller om det överhuvudtaget finns med i formen?
Skall det vara type=file eller type=text? Du har bytt mellan dina inlägg.
När du hade type=text så har du inte satt value så att if-satsen inte blir sann är väl inte så konstigt eller?
Det är file jag ska ha. Skrev fel i första exemplet men det gjorde ingen skillnad.
Vad jag vill göra är att ha två sidor i en. Först kommer man till en sida där man får välja fil. Sedan när man trycker på submit så kommer man till nästa sida (samma fil). Där ska filen laddas upp till en katalog.
Jag provade även att dela upp det i två olika filer och det fungerade inte. Men sen provade jag att döpa om den första filen till .html istället för .asp och då funkade det helt plötslit. Eller det laddades inte upp någonting för då måste man väll ha nån speciell kod för det oxå men det blev iaf inget fel.
Problemet är att jag behöver använda asp till andra saker på den första sida
Men snälla. Det här måste ju vara det enklaste möjliga scriptet som går att göra med aspSmartUpload.
Vet verkligen ingen vad felet är?
Skulle inte fråga om det inte var väldigt viktigt
Du får väl fel för att fältet hej inte finns alls.
found = false
for i = 1 to myupload.form.count
if ucase(myupload.form(i-1).name) = "HEJ" then
found = true
exit for
end if
next
if not found then
'fältet finns inte
else
if myupload.form("HEJ") <> "" then
'fältet innehåller något
else
'fältet är tomt
end if
end if