<?php
$file_name = $_GET[u];
$file_dir = "";
$rename = '新名称'.'.mp3';
if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
echo "文件不存在";
exit;
} else {
// 一下是php文件下载的重点
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Content-Type: application/force-download");
Header("Content-Disposition: attachment; filename=" . $rename);
Header("Accept-Length: ".filesize($file_dir . $file_name));
@readfile($file_dir.$file_name);//加@不输出错误信息
}
?>我这个代码现在路径有个问题。
就是xxx.com/index.php?u=a/123.mp3 这样就可以下载
但是 xxx.com/index.php?u=/a/123.mp3 就总说文件不存在前面加了个“/”就不行。
请问如何弄两种方式都可以啊?
$file_name = $_GET[u];
$file_dir = "";
$rename = '新名称'.'.mp3';
if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
echo "文件不存在";
exit;
} else {
// 一下是php文件下载的重点
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Content-Type: application/force-download");
Header("Content-Disposition: attachment; filename=" . $rename);
Header("Accept-Length: ".filesize($file_dir . $file_name));
@readfile($file_dir.$file_name);//加@不输出错误信息
}
?>我这个代码现在路径有个问题。
就是xxx.com/index.php?u=a/123.mp3 这样就可以下载
但是 xxx.com/index.php?u=/a/123.mp3 就总说文件不存在前面加了个“/”就不行。
请问如何弄两种方式都可以啊?
file_exists($_SERVER["DOCUMENT_ROOT"].$file_dir . $file_name)
if (!file_exists())
{
$filename = dirname . '/' . $filename;
}
$filename = $_GET['u'];
if (!file_exists($filename))
{
$filename = dirname . '/' . $filename;
}