header: application/octet-stream
Andreas
- php
Hi,
also folgendes, ich lass mir ein zip file on the fly erstellen, welches ich dann direkt zum download angeboten werden soll. Das erstellen und so funktioniert ohne probleme, und auch der download haut hin - lokal bei mir auf dem rechner! - aber nicht mehr auf meinem online webspace.
Online bietet er zum download nicht das file "beispiel.zip", sondern das skript "skript.php?var=123" zum download an...
habe folgende header für den download:
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$newname[0].zip");
readfile("pics/".$_SESSION['projektID']."/".$newname[0].".zip");
wie gesagt lokal funktionierts super...komm auch mit googeln nicht recht weiter...
danke für jeden guten tipp ;-)
Hi,
mach da mal ne Leerzeile rein am Ende des headers:
habe folgende header für den download:
header("Content-Type: application/octet-stream");
hier 1x \n
header("Content-Disposition: attachment; filename=$newname[0].zip");
hier 2x \n\n
Gruss, Rolf
header("Content-Type: application/octet-stream\n");
header("Content-Disposition: attachment; filename=$newname[0].zip\n\n");
readfile("pics/".$_SESSION['projektID']."/".$newname[0].".zip");
Hi Rolf,
bringt leider nicht wirklich was, das angebotene file ist immer noch das skript;-(
Hi Rolf!
header("Content-Type: application/octet-stream");
hier 1x \n
header("Content-Disposition: attachment; filename=$newname[0].zip");
hier 2x \n\n
Hier gehts um PHP, da kümmert sich die header() Funktion selber darum ;-)
Grüße
Andreas
hi Andreas,
Hier gehts um PHP, da kümmert sich die header() Funktion selber darum ;-)
Hrmm, wussti noch nicht...
Hab trotzdem nochwas:
http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=10&id=4
Bitte mal testen.
Gruss, Rolf
Hi!
Hab trotzdem nochwas:
http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=10&id=4
Ja, das hat durchaus Auswirkungen, das beste ist wenn am Ende wirklich ein Dateiname steht, sowas wie 123.zip.
Versuch mal den Aufruf wie folgt:
script.php/123.zip
und dann lass Dir $name = basename($_SERVER["PATH_INFO"]); ausgeben.
Da sollte dann "123.zip" drinstehen. Das kannst Du wiederum splitten, z.B.
$id = substr($name, 0, -4); // $id = 123
Sonst kannst Du mal http://pear.php.net/manual/en/package.http.http-download.intro.php versuchen, das setze ich meist ein.
Grüße
Andreas
Hab trotzdem nochwas:
http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=10&id=4Bitte mal testen.
Gruss, Rolf
hi, also ich die variablen übergabe zu ändern, weis nicht so recht, ich verarbeite ja die variable davor noch, ich übergebe auch nihct den dateinamen, sondern nur einen bildnamen, dieses wird dann eben on the fly gezipped...
hab grad noch mal getestet, mit NS funktionnierts - also hängts echt nur am IE - in soweit hast du recht
Hi!
hi, also ich die variablen übergabe zu ändern, weis nicht so recht, ich verarbeite ja die variable davor noch, ich übergebe auch nihct den dateinamen, sondern nur einen bildnamen, dieses wird dann eben on the fly gezipped...
Hm, was haben die Bilder denn für ein Format? Also jpeg, gif oder png Bilder per zip zu komprimieren ist eigentlich ziemlich unnötig.
Grüße
Andreas
Hm, was haben die Bilder denn für ein Format? Also jpeg, gif oder png Bilder per zip zu komprimieren ist eigentlich ziemlich unnötig.
sind jpeg, habs schon zuerst versucht direkt die bilder anzubieten, allerdings tritt da das gleiche problem auf...
auch die methode mit basename hilft nicht wirklich weiter, dann wird eben dieser wert als download angeboten - ohne dass der datei typ erkannt wird - also auch nix ;-(
Hi!
auch die methode mit basename hilft nicht wirklich weiter, dann wird eben dieser wert als download angeboten - ohne dass der datei typ erkannt wird - also auch nix ;-(
Du bist nicht der erste mit dem Problem, guck Dir mal die Kommentare bei http://de3.php.net/header an, da stehen noch einige Ideen. Sonst würde ich mir mal das genannte PEAR-Modul ansehen.
Du kannst Dir mit Hilfe der Mozilla/Firefox-Erweiterung "Live-Header" die HTTP-Header ansehen, die vom Browser und vom Server gesendet werden. Vergleiche einmal Deine Variante mit einer Seite, wo genau das klappt. Guck Dir an wie sich die Header unterscheiden und passe Dein Script an.
Ich weiß nicht ob Live-Header mit Firefox 0.9 funktioniert, mit 0.8 in jedem Fall, sonst kannst Du es z.B. auch mit Ethereal ansehen.
Firefox Extension: http://texturizer.net/firefox/extensions/#livehttpheaders
Ethereal: http://www.ethereal.com/download.html
Grüße
Andreas
Hallo,
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$newname[0].zip");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename="$n"");
Das gefällt dem IE auch. ;)