文件不存在的问题
代码在当前目录下,获取远程文件地址应该可以直接get到啊,为什么不存在呢
// download.php?file=5f05cc5495ed2.jpeg
// 接收get参数
if (!isset($_GET['file'])){
exit('需要传递文件名称');
}
if (empty($_GET['file'])){
exit('请传递文件名称');
}
// 获取远程文件地址
//$file = './uploads/'.$_GET['file'];
$file = $_GET['file'];
var_dump($file);
if (!file_exists($file)){
exit('文件不存在..');
}
if (!is_file($file)){
exit('文件不存在(如果不是文件)');
}
if (!is_readable($file)){
exit('文件不可读');
}
// 清空缓存区
ob_clean();
// 打开文件 rb二进制形式
$file_handle = fopen($file,'rb');
if (!$file_handle){
exit('打开文件失败');
}
// header头部设置 通知浏览器
// 二进制流
header('Content-type: application/octet-stream; charset=utf-8');
// 二进制传输
header('Content-Transfer-Encoding: binary');
// 文件大小
header('Content-Length:'.filesize($file));
// 文件以附件的形式打开
header('Content-Disposition: attachment; filename"'.urlencode(basename($file)).'"');
// 读取并输出文件
while (!feof($file_handle)){
// 每次读取10240个字节
echo fread($file_handle,10240);
}
// 关闭文档流
fclose($file_handle);
正在回答
同学你好,1. 同学可以输出$_GET['file']。查看文件是否在当前目录中。如果不存在,则可能是同学设置的文件路径存在问题,建议同学根据文件路径重新进行传递。
2. 或同学尝试在源码中进行测试。
3. 同学也可以以复制粘贴的方式反馈HTML中的代码,与以截图的方式反馈项目结构。便于老师定位问题。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星