PHP檔案下載原理
1、php下載原理圖
2、檔案下載原始碼:
<?php $file_name="哈哈.jpg";//需要下載的檔案 $file_name=iconv("utf-8","gb2312","$file_name"); $fp=fopen($file_name,"r+");//下載檔案必須先要將檔案開啟,寫入記憶體 if(!file_exists($file_name)){//判斷檔案是否存在 echo "檔案不存在"; exit(); } $file_size=filesize("a.jpg");//判斷檔案大小 //返回的檔案 Header("Content-type: application/octet-stream"); //按照位元組格式返回 Header("Accept-Ranges: bytes"); //返回檔案大小 Header("Accept-Length: ".$file_size); //彈出客戶端對話方塊,對應的檔名 Header("Content-Disposition: attachment; filename=".$file_name); //防止伺服器瞬時壓力增大,分段讀取 $buffer=1024; while(!feof($fp)){ $file_data=fread($fp,$buffer); echo $file_data; } //關閉檔案 fclose($fp); ?>
3、檔案編碼問題解決方法:
如果檔名是中文,php的函式不能識別中文檔名,一般如果程式編碼為utf-8,php的函式比較古老,只能識別gb2312編碼的中文,所以把中文用iconv(“原編碼”,”要轉成的編碼”,”要轉碼的字串”)函式可以轉碼。
比如,把一個字串從utf-8轉碼為gb2312
$file_name=iconv(“utf-8”,”gb2312”,”$file_name”);
相關文章
- PHP:檔案載入PHP
- Java SE 檔案上傳和檔案下載的底層原理Java
- 檔案下載
- PHP+Mysql統計檔案下載次數例項PHPMySql
- 00、下載檔案
- Ajax 下載檔案
- js 檔案下載JS
- HttpClient 下載檔案HTTPclient
- JAVA檔案下載Java
- Response下載檔案
- FastApi下載檔案ASTAPI
- 任意檔案讀取與下載的原理及修復
- 檔案程式設計、檔案下載程式設計
- PHP 如何上傳檔案和下載,你學會了嗎?PHP
- SpringMVC檔案上傳下載(單檔案、多檔案)SpringMVC
- python之檔案下載Python
- 檔案上傳下載
- Flutter 下載檔案操作Flutter
- python 下載檔案demoPython
- PHP檔案的自動載入(autoloading)PHP
- 檔案下載(URL,文件流)
- CentOS 7映象檔案下載CentOS
- 檔案下載那點事
- 如何下載 Ubuntu 映象檔案?Ubuntu
- JAVA檔案上傳下載Java
- IDM下載度盤檔案
- Flutter實現檔案下載Flutter
- 使用 header 頭下載檔案Header
- 6.1檔案下載、讀取
- AJAX實現檔案下載----
- goroutine&waitgroup下載檔案GoAI
- 前端如何下載檔案流前端
- springboot 檔案上傳下載Spring Boot
- 檔案上傳與下載
- 【淺出 PHP】PHP 檔案操作 寫檔案PHP
- Netty接收HTTP檔案上傳及檔案下載NettyHTTP
- spring cloud feign 檔案上傳和檔案下載SpringCloud
- 精講RestTemplate第6篇-檔案上傳下載與大檔案流式下載REST
- vue/js實現檔案流下載,檔案下載進度監聽VueJS