0
我正在嘗試編寫一個PHP腳本,它將在客戶端下載一個文件。該文件可以是Excel(xlsx)或JSON。PHP讀取文件和下載不起作用
The URL will look like:
http://<server>/php/download.php?file=/some/path/file.xlsx&name=file.xlsx&format=xlsx
而且我的PHP腳本是這樣的:
<?php
if($_GET['format']==='excel') {
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
} else if($_GET['format']==='json') {
header('Content-type: application/json');
}
header("Content-disposition: attachment; filename=".$_GET['name']);
readfile($_GET['file']);
?>
我有雙重檢查,實際文件沒有損壞或任何東西。但是當我使用上面的URL時,會下載一個大小爲0的文件(雖然名稱正確),但顯然這是錯誤的。我的PHP代碼有什麼問題?
請不要使用不安全的(用戶)輸入來從您的服務器提供文件 – DarkBee
URL由我組成(我正在寫前端),並且完全在我的控制之下。所以傳遞給服務器的GET參數不是任意的或者由用戶決定的。回到問題 - PHP中有什麼問題,它無法提供文件? – shikhanshu
我的不好!切換到'error_reporting(E_ALL)'並注意到'readfile()'已被管理員禁用。有沒有其他方法可以在不使用'readfile'的情況下提供文件下載? – shikhanshu