我有一個腳本,它將文件上傳到聯機目錄並將文件詳細信息存儲在數據庫中。存儲時的文件被重命名爲數據庫中條目的ID。無論用戶何時請求下載,簡單的SQL語句都會從數據庫中檢索文件詳細信息,從數據庫中讀取文件內容,並提示文件下載。下面是我的代碼:Php下載腳本不能正常工作
$one_file = $FILE_OBJECT->get($_GET['id']); // this is an object which just grabs the file details from the database
header("Content-type: ".$one_file['type']); // add here more headers for diff. extensions
header("Content-Disposition: attachment; filename=\"".$one_file["filename"]."\""); // use 'attachment' to force a download
header("Content-type: application/octet-stream");
header("Content-Disposition: filename=\"".$one_file["filename"]."\"");
readfile(_config('files_path').$_GET['id']);// reading the actual raw file stored in my online directory
問題是,即時通訊使用測試word文檔及其完美上傳 - 我甚至已經檢查原始文件被手動更改其擴展名,它的上傳完美上傳。問題在於,當使用上面的代碼下載Word文件時,Word文件似乎已損壞或發生了什麼,因爲當我嘗試打開它時,它全是混亂和混亂。發生了什麼?我在我工作過的其他幾個網站上使用了這個代碼片段,它們工作得很好......請幫助!
呃...... ** **,'teh'。但是,作爲一個問題:(1)你能否確認在數據庫中的存儲是否正確完成,即:如果將該內容作爲文件保存在文件系統中,它是否有效? (2)如果我將''../ conf/yoursupersecretpasswordfile''作爲'$ _GET ['id']''會發生什麼? – Wrikken 2010-07-23 20:45:09
當你一直使用「teh」時,這篇文章很難閱讀。火狐瀏覽器和Chrome瀏覽器內置了拼寫檢查器,正確拼寫並不難。如果英語不是您的第一語言,那麼我會建議您使用拼寫檢查器,因爲它會從您的帖子中惡化,並且使其更難以幫助/理解。 (不意味着火焰或任何東西,只是提供一些有用的批評未來的職位) – 2010-07-23 20:45:39
Fixt。它也讓我失望了。 – cHao 2010-07-23 20:48:23