är det någon som har hållt på med komponenten ASPUpload? jag får följande fel när jag försöker att spara lite info ifrån ett formulär + en bilds sök väg.
"Ett fel uppstod på filen: 006~ASP 0207~Det går inte att använda Request.Form~Det går inte att använda samlingen Request.Form efter att BinaryRead har anropats."
filen som skapar detta fel är:
****
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Count = Upload.Save("d:\Inetpub\wwwroot\")
On Error Resume Next
For Each File in Upload.Files
if Err <> 0 Then
Response.Write "Ett fel uppstod på filen: " & Err.Description
Else
File.Delete
Response.Write "Databasen uppdaterades!"
End If
Next
%>
<% = Count %> fil är sparad i databasen
***
jag förstår att det är något med mina request.forms, men hur skall jag annars kunna uppdatera datan i dessa celler? någon ide?
om jag kör filen :
*******
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Count = Upload.Save("d:\Inetpub\wwwroot\")
On Error Resume Next
For Each File in Upload.Files
File.ToDatabase "DSN=film_nyheter;UID=sa;PWD=;", "insert into film_nyheter(filename, Image1) values('" & File.Path & "', ?)"
if Err \<\> 0 Then
Response.Write "Ett fel uppstod på filen: " & Err.Description
Else
File.Delete
Response.Write "Databasen uppdaterades!"
End If
Next
%>
<% = Count %> fil är sparad i databasen
****
så fungerar det... fast ett lustigt fel är att sökvägen stämmer i databasen till bilden, men den visas ej i min upload katalog, i detta fallet rooten...
sedan när jag försöker att visa bilden genom filen :
***********************
<%
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=d:\\Inetpub\\wwwroot\\databas\\film_nyheter.mdb"
SQLStmt = "SELECT \* FROM film_nyheter"
Set RS = Connection.Execute(SQLStmt)
"jag förstår att det är något med mina request.forms, men hur skall jag annars kunna uppdatera datan i dessa celler? någon ide?"
Genom att lägga in datan i variabler, i stället för at hämta dem direkt från request.form-collectionobjektet.
"så fungerar det... fast ett lustigt fel är att sökvägen stämmer i databasen till bilden, men den visas ej i min upload katalog, i detta fallet rooten..."
Du raderar ju filen med file.delete, så det är inte så konstigt.
"så visar den endast den första bilden jag har laddat upp, ingen mer..."
Därför att du sätter content-type till image/jpeg och sedan pushar ut endast en bild. Du kan inte blanda content-type i samma dokument. Antingen är det en bild eller så är det html (MIME klarar blandade content-type:r).
Du pushar ju ut Response.BinaryWrite rs("Image1"), och sedan börjar du din loop, och det går ju inte. Det är helt onödigt att överhuvudtaget pusha ut någon bild, om du ändå ska ha kvar själva filerna, och då är det dessutom rent slöseri att lägga in bilderna i databasen också.
Antingen tar du bort bilderna (men jag tycker att du ska ha dem kvar) och skapar en asp-sida som bara pushar ut en bild, eller så skippar du bildlagringen i databasen (inte lagringen av patherna) och loopar precis som förut.
------------------
----------------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB
Norrköping
ASP/VB/Perl/PHP/Tango