国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php下載jpg文件為空解決方法

2024-05-04 21:56:25
字體:
來源:轉載
供稿:網(wǎng)友

jpg格式的文件,點擊在瀏覽器中打開顯示為紅叉:代碼如下:

  1. $filetype = "image/pjpeg"
  2. header("content-type: {$filetype}"); 
  3. header("expires: 0"); 
  4. header("cache-control: must-revalidate, post-check=0,pre-check=0"); 
  5. header("pragma: public"); 
  6. $file_content = file_get_contents($filepath); 
  7. echo $file_content
  8. exit;  

首先排查初始文件是否有問題:

1、echo $filepath;

2、根據(jù)輸出的文件完整路徑,打開文件,沒有問題

排除原始文件的嫌疑,然后排查在文件讀取過程中是否存在問題:

1、$filetype = "application/jpeg";

header("content-disposition: attachment; filename="{$headername}";");

將文件強制下載,下載下來發(fā)現(xiàn)文件大小與原始文件一致,但是打開后還是為空,可以確定在文件輸出的時候出現(xiàn)了問題,使用

file_put_contents("d:aaa.jpg",file_get_contents($filepath)),將文件保存到服務器,保存的文件可以打開,這時我懷疑在文件輸出到客戶端的時候編碼出了問題,經(jīng)過一段時間的折騰,終于把問題解決,代碼如下:

  1. header("content-type: {$filetype}"); 
  2. header("expires: 0"); 
  3. header("cache-control: must-revalidate, post-check=0,pre-check=0"); 
  4. header("pragma: public"); 
  5. //此處增加編碼設定 
  6. header('content-transfer-encoding: binary'); 
  7. //此處最重要,目的是要清空輸出的字節(jié) 
  8. ob_clean(); 
  9. //此處等于下面被注射的兩行,可節(jié)省代碼 
  10. readfile($filepath); 
  11. //$file_content = file_get_contents($filepath); 
  12. //echo $file_content;    
  13. exit;  

此處附ob_clean()的解釋:clean (erase) the output buffer

我理解ob_clean()等于.net中的response.clear();


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 西城区| 普兰店市| 黔江区| 肇东市| 银川市| 民勤县| 湟中县| 广宁县| 梁山县| 龙山县| 新野县| 崇明县| 武邑县| 改则县| 望城县| 交口县| 新和县| 金华市| 周至县| 弋阳县| 元谋县| 应城市| 芦溪县| 始兴县| 上蔡县| 长葛市| 大埔县| 齐齐哈尔市| 克东县| 临西县| 高陵县| 宁都县| 元阳县| 盘山县| 渝中区| 崇仁县| 东宁县| 普陀区| 焉耆| 南安市| 海兴县|