用下面的代码吧:
<?
$upload_dir="../../upload/";
$upload_file = "file1.rar";
$fp = fopen($upload_dir.$upload_file,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($upload_dir.$upload_file));
Header("Content-Disposition: attachment; filename=" . $upload_file);
// 输出文件内容
echo fread($fp,filesize($upload_dir . $upload_file));
fclose($fp);
?>
<?
$upload_dir="../../upload/";
$upload_file = "file1.rar";
$fp = fopen($upload_dir.$upload_file,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($upload_dir.$upload_file));
Header("Content-Disposition: attachment; filename=" . $upload_file);
// 输出文件内容
echo fread($fp,filesize($upload_dir . $upload_file));
fclose($fp);
?>
php提供了函数
dirname 返回路径
basename 返回文件名
为什么不用呢?
<?
$w=strtok($title,"."); // 提取扩展名以前的字符,这对吗?
$tit=$w;
$file_name =$title;
$file_dir = "F://FoxServ//www//courseware//"; // 要使用单个的"/"
$file_dir=$file_dir.$tit."//"; // 同上
$file_dir=addslashes($file_dir); // 不要这个处理
if (!file_exists($file_dir . $file_name)) {
echo "文件找不到";
exit;
} else {
$file = fopen($file_dir.$file_name,"r");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir.$file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
echo fread($file,filesize($file_dir.$file_name));
fclose($file);
exit;}
?>