我正在做一个用PHP将csv转换为json的小脚本。 我希望,当您上传文件并完成转换时,会自动下载转换后的文件
exec(/*some stuff*/); // i call the script that convert the csv into json, i get my converted file path back
chmod($newFilePath, 0777); // i give all access to the new file
startDownload($newFilePath); // i ask the autoDownload
这是下载功能
function startDownload($path){
if (file_exists($path)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($path));
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($path));
readfile($path);
exit();
}
}
如果我回复readfile($path);
或filesize($path)
我得到了文件内容(这正是我想要的)和良好的信息,我确信路径是正确的。但是当我执行脚本时没有任何反应。
我可能遗漏了一些愚蠢的东西^^
如何让用户下载此json文件?
我试图建立一个链接,他也这样做,这是一个访问问题或类似的东西?
编辑:
我在本地测试这个脚本,它运行得很好,所以问题来自权限或类似的东西。我对这种东西真的很糟糕,所以如果你有一些想法可以帮助^^
请求帮助!
答案 0 :(得分:0)
exec
之后缺少分号:
exec(); // i call the script that convert the csv into json, i get my converted file path back
chmod($newFilePath, 0777); // i give all access to the new file
startDownload($newFilePath); // i ask the autoDownload
我会检查chmod是否真的改变了路径权限:
if(chmod($newFilePath, 0777)){
startDownload($newFilePath);
}else{
die('Permission denied');
}