Ojdå, Har du angett vart dom uppladdade filerna ska hamna nånstans?!
kan ju vara på denna raden Response.Redirect Request.ServerVariables("HTTP_REFERER")
http_referer
8 svar · 361 visningar · startad av kex
Hej,
Håller på att lära mej asp. Har lite problem med ett filuppladdnings script som ja laddat ner från en sida...
sidor:
default.asp - formulär och listar alla filer
koppling.asp - lite diverse kopplingar för FSO
laddaupp.asp - filen som laddar upp filerna
Lägger upp filerna på min b-one server. På default sidan väljer man fil man vill ladda upp och trycker ok, när ja gör det så står det:
Response object error 'ASP 0156 : 80004005'
Header Error
/Nebula/laddaupp.asp, line 36
The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
på rad 36 står det: Response.Redirect Request.ServerVariables("HTTP_REFERER")
Lägger ja till Response.Buffer = True och Response.Clear efter <!--#include file="koppling.asp" --> som koden i laddaupp.asp börjar med så står det:
Response object error 'ASP 0159 : 80004005'
Buffering Off
/Nebula/laddaupp.asp, line 36
Buffering must be on.
Jag fattar ingenting. Nybörjare som sagt. Filerna som ja laddar upp hamnar på servern, men går itne att ta bort. Nåt konstigt är det ju eftersom man får felmeddelanden hela tiden....
Tack på förhand.
Erik
Ojdå, Har du angett vart dom uppladdade filerna ska hamna nånstans?!
kan ju vara på denna raden Response.Redirect Request.ServerVariables("HTTP_REFERER")
http_referer
förstår inte va du menar... va ska ja göra?
Du måste förmodligen ha Response.Buffer=True.
Detta innebär att när sidan processas så skickas ingen data iväg förrän den är helt klar.
Felet som uppstår nu beror på att du försöker ändra header information till sidan efter att du har försökt skriva något i själva sidan. Då detta redan har skickats (buffer off) kan du inte ändra denna data. Det är därför det behöver buffras tills allt är färdigbehandlat och kan skickas iväg till klienten.
trodde det med. vet bara inte riktigt var ja ska lägga den... fr detta felmed då:
Response object error 'ASP 0159 : 80004005'
Buffering Off
/Nebula/laddaupp.asp, line 36
Buffering must be on.
----
la den i koppling.asp... så här:
<%
' Välj mapp där filerna skall hamna
Response.Buffer = True
Response.Clear
Dim mapp1, mapp2
mapp1 = "filer"
mapp2 = Server.MapPath(mapp1)
' Skapar ett FileSystemObject
Dim filer, mapp
Set filer = Server.CreateObject("Scripting.FileSystemObject")
' Kollar om mappen existerar, gör den inte det så skapas den
If Not filer.FolderExists(mapp2) Then
filer.CreateFolder(mapp2)
End If
Set mapp = filer.getFolder(mapp2)
%>
men det blir krupp ändå... blir tokig alltså.
Response.Buffer = True
Ska stå högst upp.
Mitt hetaste tips är att låta bli att skriva ut all form av html på den sidan om du ska köra en redirect.
vad är redirect? nybörjare.... förklara gära extramt noggrant tack :]
Response.Redirect Request.ServerVariables("HTTP_REFERER")
redirect - kommandot som skickar iväg besökaren till en annan sida, eller ja, låter servern ladda en annan sida.
Om du ska göra detta i asp, på servern, skall du inte redan ha skrivit ut någon kod till webläsaren eftersom det är onödigt då ingen ändå inte kommer att kunna se den.
Om du måste visa något på samma sida innan en redirect skulle jag föreslå att du skippar redirecten i asp och lägger dit någon motsvarighet i javascript.
ok tackar