Jeg fortsætter med emnet "tvunget download" denne gang er indlægget bare med point.
Jeg har rodet lidt videre med det, men når jeg downloader en fil vha. dette script så fylder filerne 0kb, hvordan kan det være?
Jeg har også prøvet at fjerne header'ne for at fejl finde, men uden held.
<?php
// Undersøger om / findes i $filename
$level = "prof";
$file = explode("/", $_GET['file']);
$file = "/var/www/www.vinperlen.dk/secure/".$level."/".$file[count($file)-1];
$res = count_chars($file, 0);
$file_extension = strtolower(substr(strrchr($file,"."),1));
if (empty($file)) {
echo "ERROR: Download filen blev ikke valgt. Eks: ?file=filepath";
exit;
} elseif (!file_exists($file)) {
echo "ERROR: Filen blev ikke fundet. Eks: ?file=filepath";
exit;
}
switch ($file_extension) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
case "php": exit;
default: $ctype="application/force-download";
}
//header("Pragma: public");
//header("Expires: 0");
//header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
//header("Cache-Control: public");
//header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=".basename($file).";");
//header("Content-Transfer-Encoding: binary");
//header("Content-Length: ".filesize($file));
//readfile("$filename");
exit();
?>
mvh. Rune Thougaard
--
Der er lige et par småting, du skal ikke fjerne headerne, de skal være der.
Og så den næstsidste linje, readfile ($filename) filename er ikke en variable, den hedder $file, det er der hele fejle ligger.
Så det skal se sådan her ud
<?php
// Undersøger om / findes i $filename
$level = "prof";
$file = explode("/", $_GET['file']);
$file = "/var/www/www.vinperlen.dk/secure/".$level."/".$file[count($file)-1];
$res = count_chars($file, 0);
$file_extension = strtolower(substr(strrchr($file,"."),1));
if (empty($file)) {
echo "ERROR: Download filen blev ikke valgt. Eks: ?file=filepath";
exit;
} elseif (!file_exists($file)) {
echo "ERROR: Filen blev ikke fundet. Eks: ?file=filepath";
exit;
}
switch ($file_extension) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
case "php": exit;
default: $ctype="application/force-download";
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=".basename($file).";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file));
readfile("$file");
exit();
?>
Mvh Bob