Lid |
|
Hallo,
Ik gebruik het volgende script al een tijdje om geforceerd een .zip file te downloaden.
Dit gaat tot nu toe prima op een server die werkt op php 4. Nu heb ik hetzelfde script in gebruik op een server op php5. De gedownloade zip file is nu echter niet meer te openen. Het script dat de file aanmaakt doet het goed, want via ftp kan ik de .zip wel gewoon openen vanaf de server.
Iemand die weet waarom dit niet werkt onder php 5.?
function forceDownload($archiveName) {
$headerInfo = '';
chmod ($archiveName, 0777);
// Security checks
if( $archiveName == "" ) {
$boodschap = "<tr><td class=\"profiel2\">De download file is niet gespecificeerd!</td></tr>";
return $boodschap;
}
elseif ( ! file_exists( $archiveName ) ) {
$boodschap = "<tr><td class=\"profiel2\">File niet gevonden!</td></tr>";
return $boodschap;
}
if ($stream = fopen($archiveName, "rb")) {
header("Content-type: application/force-download");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=" . basename($archiveName));
header("Content-Length: " . filesize($archiveName));
header("Cache-Control: post-check=0, pre-check=0");
header("Pragma: public");
header("Connection: close");
while (!feof($stream)) {
$out = fread($stream, 1024 * 4);
print $out;
}
fclose($stream);
$boodschap = "<tr><td class=\"profiel2\">Bestand succesvol verzonden!!!</td></tr>";
return $boodschap;
exit;
} else {
$boodschap = "<tr><td class=\"profiel2\">File read error!</td></tr>";
return $boodschap;
}
}
function forceDownload($archiveName) { $headerInfo = ''; chmod ($archiveName, 0777); // Security checks if( $archiveName == "" ) { $boodschap = "<tr><td class=\"profiel2\">De download file is niet gespecificeerd!</td></tr>"; return $boodschap; } $boodschap = "<tr><td class=\"profiel2\">File niet gevonden!</td></tr>"; return $boodschap; } if ($stream = fopen($archiveName, "rb")) { header("Content-type: application/force-download"); header("Content-Transfer-Encoding: binary"); header("Content-Disposition: attachment; filename=" . basename($archiveName)); header("Cache-Control: post-check=0, pre-check=0"); $out = fread($stream, 1024 * 4); } $boodschap = "<tr><td class=\"profiel2\">Bestand succesvol verzonden!!!</td></tr>"; return $boodschap; } else { $boodschap = "<tr><td class=\"profiel2\">File read error!</td></tr>"; return $boodschap; } }
Alvast bedankt!
|