Toon posts:

[PHP] octet-stream

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008

Verwijderd

Topicstarter
PHP:
1
2
3
  header("Content-type: application/oct-stream");
  header("Content-disposition: attachment; filename=\"$file_loc\"");
  readfile( $location );


$file_loc = den bare file name (bvb mijndll.dll)
$location = de locatie waar die filename staat (bvb mijnbestanden/mijndll.dll)

in opera kan ik die perfect downloaden... Maar in IE niet ... Daar geeft die altijd het probleem:

Afbeeldingslocatie: http://home.tiscali.be/aningel/IE-downloadprob.jpg

Hoe kan ik dit oplossen?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Welke versie van IE? 5.5 toevallig?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

IE heeft soms wel wat problemen met de header octet-stream, neem anders eens een fake header als application/force-download oid.

Verwijderd

Topicstarter
IE 6.0

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

[search=oct-stream]
[search=octet-stream]

:)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  $filename = realpath($location);

  header("Pragma: public");
  header("Expires: 0"); // set expiration time
  header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  header("Content-Transfer-Encoding: binary");
  header("Content-Length: " . filesize($filename));

//  header("Content-type: application/oct-stream");
  header("Content-Type: application/force-download");
  header("Content-Type: application/octet-stream");
  header("Content-Type: application/download");

  header("Content-disposition: attachment; filename=\"" . basename($filename) . "\"");
  readfile( $filename );


btw Spider.007: ik zou het niet vragen als de code die op dit forum al gepost was werkte :p simpel hé?

[ Voor 19% gewijzigd door Verwijderd op 09-06-2003 10:19 ]


  • cdgrit
  • Registratie: Mei 2002
  • Laatst online: 15-08 14:58
header("Cache-control: private"); toevoegen.
Op http://nl.php.net/manual/nl/function.header.php hebben ze het ook over problemen in IE. In de discussie onderaan.


Originele startpagina - Stadindex.nl


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

en...... dat werkt :? niet :?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Verwijderd schreef op 09 June 2003 @ 10:14:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  $filename = realpath($location);

  header("Pragma: public");
  header("Expires: 0"); // set expiration time
  header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  header("Content-Transfer-Encoding: binary");
  header("Content-Length: " . filesize($filename));

//  header("Content-type: application/oct-stream");
  header("Content-Type: application/force-download");
  header("Content-Type: application/octet-stream");
  header("Content-Type: application/download");

  header("Content-disposition: attachment; filename=\"" . basename($filename) . "\"");
  readfile( $filename );


btw Spider.007: ik zou het niet vragen als de code die op dit forum al gepost was werkte :p simpel hé?
Is er enige reden dat je die drie Content-Types doorgeeft tegelijk :?

Verwijderd

Topicstarter
cdgrit> werkt ook niet :x ik had al op php.net/manual/en/ gekeken hiervoor
Spider> Werkt niet :x anders vroeg ik het niet :p
dis.pater> Nee, stond ergens op een webpage dat het zo werkte, maar dat doet het dus niet!


Momenteel werk ik met dit:
PHP:
1
2
3
4
5
  header("Content-Transfer-Encoding: binary");
  header("Content-Length: " . filesize($filename));
  header("Content-Type: application/oct-stream");
  header("Content-disposition: attachment; filename=\"" . basename($filename) . "\"");
  readfile( $filename );


Dit werkt perfect in Opera, maar in IE niet (check: http://lid.fragland.net/download.php?file=1)

[ Voor 81% gewijzigd door Verwijderd op 09-06-2003 10:25 ]


Verwijderd

Onder IE 6 werkt het gewoon bij mij hoor :s

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Verwijderd schreef op 09 June 2003 @ 10:22:
cdgrit> werkt ook niet :x ik had al op php.net/manual/en/ gekeken hiervoor
Spider> Werkt niet :x anders vroeg ik het niet :p
dis.pater> Nee, stond ergens op een webpage dat het zo werkte, maar dat doet het dus niet!


Momenteel werk ik met dit:
PHP:
1
2
3
4
5
  header("Content-Transfer-Encoding: binary");
  header("Content-Length: " . filesize($filename));
  header("Content-Type: application/oct-stream");
  header("Content-disposition: attachment; filename=\"" . basename($filename) . "\"");
  readfile( $filename );


Dit werkt perfect in Opera, maar in IE niet (check: http://lid.fragland.net/download.php?file=1)
Ik zei al eerder dat je niet oct-stream moest gebruiken; maar juist octet-stream. Maakt dat ook geen verschil?

Heb je hier ook niets gevonden?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • Denhomer
  • Registratie: Augustus 2000
  • Laatst online: 12-10-2025

Denhomer

Doh !

Sorry hoor, maar die file kan ik downloaden met ie 6

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 heeft ook geen probleem in IE 6.0 + SP1
* gorgi_19 denkt dat het zo wel duidelijk is dat er geen enkel probleem is met de code :P

[ Voor 12% gewijzigd door gorgi_19 op 09-06-2003 10:40 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Vreemd? Ik kan die dus niet downloaden (Windows XP NL, SP1, 6.0.2800.1106.xpsp1.020828-1920)...

Spider: nee, octet-stream is juist zelfste resultaat

[ Voor 23% gewijzigd door Verwijderd op 09-06-2003 10:44 ]


Verwijderd

Ik heb identiek dezelfde versie en hij doet het dus :p

Verwijderd

Topicstarter
HUH????
How come?

Nu snap ik er echt niets meer van :x

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22-08 01:56
Paar dingen op een rijtje:
• Het is octet-stream en niet oct-stream.
• Meerdere Content-type headers meegeven is onzinnig; je respons body heeft maar 1 soort inhoud; geef je meerdere Content-type headers mee dan is het een beetje van toeval afhankelijk wat de client gaat doen.
• Cache headers hebben hier niets mee te maken (behalve voor het lokaal testen, natuurlijk) dus die kun je wel achterwege laten.
Misschien vergis ik me wat betreft die cache header, maar dat lijkt me sterk.
Verwijderd schreef op 09 June 2003 @ 10:45:
HUH????
How come?

Nu snap ik er echt niets meer van :x
Tja, niet echt een nuttige reactie, he. Hoe denk je dat het komt? Ik zou zelf gokken op caching problemen; herstart je browser eens een clear je memory/disk caches.

[ Voor 26% gewijzigd door Soultaker op 09-06-2003 10:57 ]


Verwijderd

Topicstarter
Soultaker>
1/ ok, is aangepast ... dacht ook dat het octet was maar was niet zeker (werkte ook met oct, dus who cares)
2/ onzinnig: misschien, maar ik was gewoon wat aan het testen.
3/ cache headers: dunno eigenlijk, same as 2... gewoon aan't testen
4/ misschien niet nuttig, maar daarom niet onzinnig. Het werkt bij dis.pater wel, terwijl het bij mij niet werkt. Dus waar zou dat dan wel aan liggen. Ik zal eens je hint proberen

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22-08 01:56
Verwijderd schreef op 09 juni 2003 @ 11:10:
Soultaker>
1/ ok, is aangepast ... dacht ook dat het octet was maar was niet zeker (werkte ook met oct, dus who cares)
Nee, 'oct' werkte met Internet Explorer (en misschien wat andere browsers) goed omdat Internet Explorer automatisch het bestand wil downloaden als hij 't content type niet kent. Mozilla echter, gaat er vanuit dat het bestand plain text is al het content type onbekend is, en dan krijg je dus een hele lap binary crap in je browservenster.
2/ onzinnig: misschien, maar ik was gewoon wat aan het testen.
3/ cache headers: dunno eigenlijk, same as 2... gewoon aan't testen
4/ misschien niet nuttig, maar daarom niet onzinnig. Het werkt bij dis.pater wel, terwijl het bij mij niet werkt. Dus waar zou dat dan wel aan liggen. Ik zal eens je hint proberen
Ik kan het toch niet met die werkwijze eens zijn. De uitleg die ik hierboven gaf is daar de perfecte argumentatie bij: als je gewoon maar allerlei dingen bij elkaar zet en wat aanklooit todat het bij jouw werkt, dan is de kans klein dat het ook in allerlei andere omgevingen goed werkt! Je hebt het probleem dan alleen voor jezelf opgelost.

Als je een universeel geldige (portable) oplossing zoekt, moet je uitgaan van standaarden en specificaties. Dan hou je een oplossing over waarvan je kunt aantonen dat 'ie werkt en (als het goed is) dan werkt 'ie ook in andere, standard-compliant omgevingen.

Het bij wijze van experiment toevoegen van caching headers kan denk ik weinig kwaad (al zal het ook weinig goeds doen), maar meerdere content type headers toevoegen is vragen om problemen, omdat het omgevingsafhankelijk is hoe daar mee omgegaan wordt. Misschien pikt Internet Explorer de goede eruit, maar hoe weet je welke Mozilla, Konqueror, Opera of Internet Explorer voor de Mac gaan gebruiken?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Probleem opgelost, discussie over Karel's werkwijze lijkt me niet echt lijkt me niet echt constructief want Soultaker heeft gewoon gelijk :)

De standaarden voor het beschrijven van Internet Message Bodies liggen vast in RFC 1521, en alle andere standaarden met betrekking tot internet liggen ook vast in RFC's. Dus als je wilt weten hoe je zoiets aan moet pakken, surf richting Google en gebruik als keywords iig 'RFC', bijvoorbeeld RFC smtp als je alles wil weten over het SMTP-protocol :Y)

Gaat nu dus dicht voordat we gaan ruzieen over of je wel of niet aan internet standaarden moet houden :+

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.