Sprint
Erfahrenes Mitglied
Hallo zusammen,
ich habe hier ein sehr merkwürdiges Problem mit dem Download einer ZIP Datei, die vorher erzeugt wird. Ich nehme jetzt mal an, daß es an Ajax liegt. Zuerst wollte ich Erzeugung und den Download in ein Script packen, was aber überhaupt nicht funktioniert hat.
Irgendwann war ich dann soweit, daß die ZIP Datei erzeugt, aber nicht runtergeladen wurde. Ich habe dann den Download Teil in eine separate Datei gesetzt. Wenn ich die dann über den Browser aufrufe, wird die Datei geladen, wenn ich sie über Ajax aufrufe, passiert nichts. Ich habe aber weder in der Browserkonsole noch in den Serverlogs irgendwelche Fehler.
Das ist der komplette Vorgang:
Und so sieht das Download Script aus:
Normalerweise werden die Daten per Post übergeben bzw. aus aus der Session extrahiert. Das spielt hier aber auch keine Rolle. Die übergebenen Daten sind korrekt. Ich kann auch ausschließen, daß die Erzeugung der ZIP Datei zu lange braucht. Die Funktion wird auch aufgerufen und das Ausblenden des Wrappers ausgeführt.
Hat jemand eine Idee, woran das liegen könnte?
ich habe hier ein sehr merkwürdiges Problem mit dem Download einer ZIP Datei, die vorher erzeugt wird. Ich nehme jetzt mal an, daß es an Ajax liegt. Zuerst wollte ich Erzeugung und den Download in ein Script packen, was aber überhaupt nicht funktioniert hat.
Irgendwann war ich dann soweit, daß die ZIP Datei erzeugt, aber nicht runtergeladen wurde. Ich habe dann den Download Teil in eine separate Datei gesetzt. Wenn ich die dann über den Browser aufrufe, wird die Datei geladen, wenn ich sie über Ajax aufrufe, passiert nichts. Ich habe aber weder in der Browserkonsole noch in den Serverlogs irgendwelche Fehler.
Das ist der komplette Vorgang:
Javascript:
function pdfzip(lid){
$("#loader-wrapper").fadeIn("normal");
$.ajax({
type: "POST",
url: "makezip.php",
data: {lid: lid},
async: false,
success: function(data){
pdfdown(lid);
}
});
}
function pdfdown(lid){
$.ajax({
type: "POST",
url: "zipdown.php",
data: {lid: lid},
async: false,
success: function(data){
$("#loader-wrapper").fadeOut("normal");
}
});
}
PHP:
$lid = 1;
$kdnr = 50132;
/*
@$lid = preg_replace( "/[^0-9]/im", "", $_POST['lid']);
if (substr($_SESSION['usernr'],0,1) >= 5)
$kdnr = substr($_SESSION['usernr'],0,5);
else
$kdnr = substr($_SESSION['usernr'],0,6);
*/
$zipordner = 'uploads/'.$kdnr.'/';
$zip_name = $kdnr.'-'.$lid.'.zip';
if(file_exists($zipordner.$zip_name)) {
if ($fd = fopen ($zipordner.$zip_name, "r")) {
$fsize = filesize($zipordner.$zip_name);
header("Content-type: application/octet-stream");
header('Content-Disposition: attachment; filename="'.$zip_name.'"');
header("Content-length: $fsize");
while(!feof($fd)) {
$buffer = fread($fd, 2048);
echo $buffer;
}
fclose ($fd);
}else
die('error1');
}
Hat jemand eine Idee, woran das liegen könnte?