项目场景:
例如:项目场景:在通过readfile()下载线上文件时报错filesize():stat failed for http://www.xxx.com/123.xlsx
问题描述
提示:这里描述项目中遇到的问题:
例如:通过连接下载文件下载下来的文件提示filesize():stat failed for http://www.xxx.com/123.xlsx 直接将线上文件连接输出。
try {
$file = 'http://www.xxx.com/xxx.xlsx';
$newFileName = '123.xlsx';
header('Content-Description:FileTransfer');
header('Content-Type:application/octet-stream');
header('Content-Disposition:attachment;filename="' . $newFileName . '"');
header('Content-Length:' . filesize($file));
readfile($file);
exit();
} catch (\Exception $e) {
exit($e->getMessage());
}
原因分析:
提示:这里填写问题的分析:
1、文件链接无效或链接损伤:检查http://www.xxx.com/xxx.xlsx后发现链接正常。
2、权限问题:php进程可能无法获取远程文件的信息。这边文件存储使用第三方并不在代码服务器
解决方案:
提示:将
header('Content-Length:' . filesize($file));
代码删除。下载成功。