看板 PHP 關於我們 聯絡資訊
在寫程式時發現 如果上傳影音檔或壓縮檔 利用 header("Content-Disposition: attachment; filename=$name"); header("Content-Type: application/octet-stream"); 下載 會造成檔案損壞 可是如果使用超連結下載就不會有這問題 (確定檔案是OK 無損壞的 是利用header下載才造成損壞) 請問該如何解決這方面的問題呢??? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.220.30.237
JYHuang:有沒有用g-zip那一類的做壓縮? 03/15 11:28
claire0810:沒有 就只單純rar 跟 avi檔 03/15 11:29
claire0810:有我看過網路上說透過ftp下載 會造成損壞 03/15 11:30
claire0810:所我想請問是否有解決方法@@ 03/15 11:30
AndCycle:你怎麼把檔案讀出來的, 要用binary mode呀... 03/15 11:37
binary mode 不懂耶XD 就是利用header詢問是否下載呀 (精華區有原文 z-5-6) <? $name = $_GET["name"]; header("Content-Disposition: attachment; filename=$name"); header("Content-Type: application/octet-stream"); echo file_get_contents("../upfiles/imp_file/$name"); ?> 這是我修改後的程式碼 可是我發現 如果不透過header下載就不會損壞
SMUGEN:是不是還需要一個 Content-Length ?? 03/15 11:48
請問該加在哪呢@@? ※ 編輯: claire0810 來自: 61.220.30.237 (03/15 11:52)
buganini:錢面有沒有BOM? 03/15 13:40
buganini:拿hex editor開來看看是哪裡不同 03/15 13:42
buganini:是有多byte還是少byte還是錯byte 03/15 13:43
我有大致找到原因喔 知識+有一個是說 我下載檔案的時候,檔案都成功的下載下來,可是問題就來了! 這些下載的檔案(各式各 樣的:jpg,doc,mp3...等),都開不了。我用notepad開這些檔案內容來看,才發現到所有 我下載下來的檔案,內容都自動被加了<html></html> 這個標籤。 我照他的方式 用notepad打開來看 編碼的確被改過了 等於說 我用header載的檔案 並不是原本的那個檔案 而是另外被編碼的檔案 ※ 編輯: claire0810 來自: 61.220.30.237 (03/15 13:54)