php做的下载功能,为什么点击下载不提示文件大小?代码里有写啊
<?$file_name=$_GET['name'];$file_dir="./up/";$filesize=filesize($file_dir.$file_name)...
<?
$file_name = $_GET['name'];
$file_dir = "./up/";
$filesize=filesize($file_dir.$file_name);
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);
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,$filesize);
fclose($file);
exit;}
?> 展开
$file_name = $_GET['name'];
$file_dir = "./up/";
$filesize=filesize($file_dir.$file_name);
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);
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,$filesize);
fclose($file);
exit;}
?> 展开
2个回答
展开全部
其实是这个函数的问题,我最近研究了很久,终于明白了。代码如下。
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Content-Length: ".$filesize);
header("Content-Disposition: attachment; filename=“.$filename);
原理就是Accept-Length换成Content-length,这样就可以了
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Content-Length: ".$filesize);
header("Content-Disposition: attachment; filename=“.$filename);
原理就是Accept-Length换成Content-length,这样就可以了
展开全部
$file = fopen($file_dir . $file_name,"r"); 这里错啦!!!打开的文件没有扩展名,只是个路径。
更多追问追答
追问
这里不可能错,要是这里错了,下载框都不会弹出
追答
Header("Content-Disposition: attachment; filename=" . $file_name);这句有问题吧。
你前面少了一句$file_name = basename($file_name);你应该把上传的文件的扩展名去掉!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询