[HTTP] IE accepteert mijn headers niet

Pagina: 1
Acties:

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023
Ik ben bezig een downloadscriptje te maken (php), maar het daadwerkelijk downloaden werkt niet in IE.
Als ik IE naar mijn scriptje wijs, dan wordt het openen/opslaan/annuleren ventertje getoond. Als voor opslaan of openen wordt gekozen zegt ie: "Internet explorer was unable to open the internet site. The requested site is either unavailable or cannot be found. Please try again later".

Uit de HTTP headers word ik niet veel wijzer:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
GET /download/14/text.bin HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, 
     application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
Host: extranet.klantnaam.lan
Connection: Keep-Alive
Cookie: PHPSESSID=0d47140c4627d88d7ea1c00d850f644e

HTTP/1.1 200 OK
Date: Thu, 09 Sep 2004 11:59:14 GMT
Server: Apache/1.3.31 (Debian GNU/Linux) PHP/4.3.7
X-Powered-By: PHP/4.3.7
Set-Cookie: PHPSESSID=0d47140c4627d88d7ea1c00d850f644e; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-length: 13824
Etag: "1094717491"
Last-Modified: Thu, 09 Sep 2004 08:11:31 GMT
Accept-Ranges: none
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/plain; charset=iso-8859-1

[binaire data volgt]

(get:accept is gewrapped ivm layout)

Als ik content-type "application/msword" invul dan wordt de download wel voltooid, maar wordt het bestand gewoon in de browser geopend, en zegt word vervolgens dat het geen wordbestand is (wat op zich waar is). Content-disposition toevoegen lijkt geen effect te hebben.

Heeft iemand een idee hoe ik dit kan oplossen?

[ Voor 3% gewijzigd door kvdveer op 09-09-2004 14:16 ]

Localhost, sweet localhost


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
application/octet-stream

Probeer dit content type eens...

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

kvdveer schreef op 09 september 2004 @ 14:15:

Uit de HTTP headers word ik niet veel wijzer:
code:
1
2
3
4
GET /download/14/text.bin HTTP/1.1
Content-Type: text/plain; charset=iso-8859-1

[binaire data volgt]


Heeft iemand een idee hoe ik dit kan oplossen?
Zoals bigbeng al probeert aan te geven dat je content-type verkeerd is en je application/octet-stream moet hebben, want je zegt nu dat het "platte" tekst is terwijl je binaire data hebt ;)

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023
Ik had als content-type al geprobeerd: application/octet-stream, application/unknown en application/force-download-alstublieft (die laatste is geen bestaand mime-type).
Alles met identiek resultaat.

Localhost, sweet localhost


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Even voor de goede orde, het werkt wel in andere browsers?
En hoe precies bied je die file aan? met wat voor code?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Content-Disposition is wel degelijk handig/nodig hierbij, en formateer je als volgt:
code:
1
Content-Disposition: attachment; filename="pietjepuk.txt"

Hiermee schrijf je namelijk voor dat het een te-downloaden file is die per definitie niet in de browser geopend mag worden, en dat de weg te schrijven filename pietjepuk.txt is default.

Professionele website nodig?


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023
kvdveer schreef op 09 september 2004 @ 14:15:
Content-disposition toevoegen lijkt geen effect te hebben.
curry684 schreef op 09 september 2004 @ 14:44:
Content-Disposition is wel degelijk handig/nodig hierbij, en formateer je als volgt:
code:
1
Content-Disposition: attachment; filename="pietjepuk.txt"

Hiermee schrijf je namelijk voor dat het een te-downloaden file is die per definitie niet in de browser geopend mag worden, en dat de weg te schrijven filename pietjepuk.txt is default.
:?
Kun je me dan ook uitleggen hoe dat dit probleem oplost, want ik had het op zich al geprobeerd.

Localhost, sweet localhost


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
http://www.phpfreaks.com/...70d7&showtopic=39631&st=0

Kijk anders hier maar eens even, gevonden via Google met keywords: content-type download php

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

kvdveer schreef op 09 september 2004 @ 14:49:
:?
Kun je me dan ook uitleggen hoe dat dit probleem oplost, want ik had het op zich al geprobeerd.
In mijn ervaring moet de combinatie exact kloppen met content-type "application/octet-stream". Ziehier een C#/ASP.NET scriptje dat ik hier heb en perfect werkt voor alle filetypes:
C#:
1
2
3
4
5
6
7
8
9
10
11
            Response.Clear();
            Response.ContentType    = "application/octet-stream";
            Response.AddHeader("Content-Disposition", "attachment; filename=\"" +
                                filename + "\"");
            Response.AddHeader("Content-Length", file.Length.ToString());
            Response.Flush();
            
            Response.OutputStream.Write(file, 0, file.Length);
            Response.Flush();
            reader.Close();
            Response.Close();

Dus als je dit port naar PHP zou het zowel in Firefox als IE6 net zo perfect moeten werken :)

Professionele website nodig?


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023
Ik heb de dader gevonden:
Php voegt standaard cache-headers toe voor de session. Als je die uitschakelt dan snapie IE wel wat je wilt...

code:
1
session_cache_limiter('none');


Ik moet nu alleen nog even uitzoeken hoe proxies hierop reageren... Mij bestanden mogen namelijk niet op proxies worden opgeslagen...

Localhost, sweet localhost

Pagina: 1