導航:首頁 > 編程語言 > php點擊下載文件

php點擊下載文件

發布時間:2022-09-08 02:47:59

⑴ 如何實現php點擊時下載txt文件功能 詳細

php 點擊下載txt 文件 由於現在的瀏覽器已經可以識別格式為txt 的文檔格式,所以如果只是給txt 文檔做一 個文字鏈接的話,可能只是打開一個新窗口顯示txt 文件的內容,並不能實現點擊下載的目 的。We have to do something else. 當然這個問題的解決辦法也可以是你將你的txt 文件改名為瀏覽器不認識的文件,比如 rar,這樣的話點擊,瀏覽器不認識就只好讓用戶下載了。 下面這個文件就是通過設置header 設置文檔的格式來實現點擊下載的目的,將上個頁面傳 遞過來的文件點擊可以下載。 接著第二個header函數設置了要下載的文件,注意這里filename是不包含路徑的文件名, 所以用basename 過濾掉路徑名。這個 filename 的值將來就是點擊下載後彈出對話框裡面的 文件名,如果帶路徑的話,彈出對話框的文件名就是未知的,這個要注意,我就犯了這個錯 誤,後來憑 經驗自己改了,居然對了。 最後就是 readfile,將文件流輸出到瀏覽器,這樣就實現了 txt 文件的下載,其他類型的類似。

⑵ 如何實現php點擊時下載txt文件功能 詳細�0�3

php 點擊下載txt 文件
由於現在的瀏覽器已經可以識別格式為txt 的文檔格式,所以如果只是給txt 文檔做一
個文字鏈接的話,可能只是打開一個新窗口顯示txt 文件的內容,並不能實現點擊下載的目
的。We have to do something else.
當然這個問題的解決辦法也可以是你將你的txt 文件改名為瀏覽器不認識的文件,比如
rar,這樣的話點擊,瀏覽器不認識就只好讓用戶下載了。
下面這個文件就是通過設置header 設置文檔的格式來實現點擊下載的目的,將上個頁面傳
遞過來的文件點擊可以下載。
接著第二個header函數設置了要下載的文件,注意這里filename是不包含路徑的文件名,
所以用basename 過濾掉路徑名。這個 filename 的值將來就是點擊下載後彈出對話框裡面的
文件名,如果帶路徑的話,彈出對話框的文件名就是未知的,這個要注意,我就犯了這個錯
誤,後來憑 經驗自己改了,居然對了。
最後就是 readfile,將文件流輸出到瀏覽器,這樣就實現了 txt 文件的下載,其他類型的類似。

⑶ PHP如何下載文件

//下載文件文件用絕對路徑
ob_clean();
header('Pragma:public');
header('Last-Modified:'.gmdate('D,dMYH:i:s').'GMT');
header('Cache-Control:no-store,no-cache,must-revalidate');
header('Cache-Control:pre-check=0,post-check=0,max-age=0');
header('Content-Transfer-Encoding:binary');
header('Content-Encoding:none');
header('Content-type:multipart/form-data');
header('Content-Disposition:attachment;filename="'.$filename.'"');//設置下載的默認文件名
header('Content-length:'.filesize($dfile));//要下載的文件
$fp=fopen($dfile,'r');
while(connection_status()==0&&$buf=@fread($fp,8192)){
echo$buf;
}
fclose($fp);
@unlink($dfile);
@flush();
@ob_flush();
exit();

⑷ php做的下載功能,為什麼點擊下載不提示文件大小代碼里有寫啊

其實是這個函數的問題,我最近研究了很久,終於明白了。代碼如下。
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Content-Length: ".$filesize);
header("Content-Disposition: attachment; filename=「.$filename);
原理就是Accept-Length換成Content-length,這樣就可以了

⑸ php怎麼在畫面上加一個下載按鈕,點擊下載能找到伺服器上文件夾的文件並下載下來

請進一步說明「畫面」是指的什麼?某個圖像背景之上?

通常來說,你可以用 層(div) 來完成這種網頁原素(input / button)的布局,至於點擊下載的動作,可以直接將目標文件URL寫上,也可以用以 php 和 js 代碼響應。

如果是動態添加按鈕原素,通常用Ajax / JQuery.

⑹ php實現文件下載代碼

簡單的文件下載只需要使用HTML的連接標記<a>,並將屬性href的URL值指定為下載的文件即可。所示:

<a href=」http://www.*****.net/download/book.rar」>下載文件</a>

如果通過上面的代碼實現文件下載,只能處理一些瀏覽器不能默認識別的MIME類型文件,例如當訪問book.rar文件時,瀏覽器並沒有直接打開,而是彈出一個下載提示框,提示用戶「下載」還是「打開」等處理方式。但如果需要下載後綴名為.html的網頁文件、圖片文件及PHP程序腳本文件等,使用這種連接形式,則會將文件內容直接輸出到瀏覽器中,並不會提示用戶下載。

為了提高文件的安全性,不希望在<a>標簽中給出文件的鏈接,則必須向瀏覽器發送必要的頭信息,以通知瀏覽器將要進行下載文件的處理。PHP使用header()函數發送網頁的頭部信息給瀏覽器,該函數接收一個頭信息的字元串作為參數。文件下載需要發送的頭信息包括以下三部分,通過調用三次header()函數完成。以下載圖片test.gif為例,需要發送的頭信息的所示:

header(『Content-Type:imge/gif'); //發送指定文件MIME類型的頭信息
header(『Content-Disposition:attachment; filename=」test.gif」『); //發送描述文件的頭信息,附件和文件名
header(『Content-Length:3390′); //發送指定文件大小的信息,單位位元組

如果使用header()函數向瀏覽器發送了這三行頭信息,圖片test.gif就不會直接在瀏覽器中顯示,而讓瀏覽器將該文件形成下載的形式。在函數header()中,「Content-Type」指定了文件的MIME類型,「Content_Disposition」用於文件的描述,值「attachment;
filename=」test.gif」」說明這是一個附件,並且指定了下載後的文件名,「Content_Length」則給出了被下載文件的大小。

設置完頭部信息以後,需要將文件的內容輸出到瀏覽器,以便進行下載。可以使用PHP中的文件系統函數將文件內容讀取出來後,直接輸出給瀏覽器。最方便的是使用readfile()函數,將文件內容讀取出來直接輸出。下載文件test.gif的所示:

<?php
$filename = "test.gif";
header('Content-Type:image/gif'); //指定下載文件類型
header('Content-Disposition: attachment; filename="'.$filename.'"'); //指定下載文件的描述
header('Content-Length:'.filesize($filename)); //指定下載文件的大小

//將文件內容讀取出來並直接輸出,以便下載
readfile($filename);
?>

上面如果碰到中文名字就會無法正常下載了,對於中文名字下載文件我又找到一個文件下載實例代碼

<?php
header("Content-type:text/html;charset=utf-8");
// $file_name="cookie.jpg";
$file_name="聖誕狂歡.jpg";
//用以解決中文不能顯示出來的問題
$file_name=iconv("utf-8","gb2312",$file_name);
$file_sub_path=$_SERVER['DOCUMENT_ROOT']."marcofly/phpstudy/down/down/";
$file_path=$file_sub_path.$file_name;
//首先要判斷給定的文件存在與否
if(!file_exists($file_path)){
echo "沒有該文件文件";
return ;
}
$fp=fopen($file_path,"r");
$file_size=filesize($file_path);
//下載文件需要用到的頭
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=".$file_name);
$buffer=1024;
$file_count=0;
//向瀏覽器返回數據
while(!feof($fp) && $file_count<$file_size){
$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
}
fclose($fp);
?>

header("Content-type:text/html;charset=utf-8")的作用:在伺服器響應瀏覽器的請求時,告訴瀏覽器以編碼格式為UTF-8的編碼顯示該內容

關於file_exists()函數不支持中文路徑的問題:因為php函數比較早,不支持中文,所以如果被下載的文件名是中文的話,需要對其進行字元編碼轉換,否則file_exists()函數不能識別,可以使用iconv()函數進行編碼轉換

$file_sub_path() 我使用的是絕對路徑,執行效率要比相對路徑高

Header("Content-type: application/octet-stream")的作用:通過這句代碼客戶端瀏覽器就能知道服務端返回的文件形式
Header("Accept-Ranges: bytes")的作用:告訴客戶端瀏覽器返回的文件大小是按照位元組進行計算的
Header("Accept-Length:".$file_size)的作用:告訴瀏覽器返回的文件大小
Header("Content-Disposition: attachment; filename=".$file_name)的作用:告訴瀏覽器返回的文件的名稱

以上四個Header()是必需的
fclose($fp)可以把緩沖區內最後剩餘的數據輸出到磁碟文件中,並釋放文件指針和有關的緩沖區

⑺ 如何實現php點擊時下載txt文件功能

由於現在的瀏覽器已經可以識別格式為txt的文檔格式,所以如果只是給txt文檔做一個文字鏈接的話,可能只是打開一個新窗口顯示txt文件的內容,並不能實現點擊下載的目的。We have to do something else.
當然這個問題的解決辦法也可以是你將你的txt文件改名為瀏覽器不認識的文件,比如rar,這樣的話點擊,瀏覽器不認識就只好讓用戶下載了。
下面這個文件就是通過設置header設置文檔的格式來實現點擊下載的目的,將上個頁面傳遞過來的文件點擊可以下載。
<?php$filename="/somepath/".
$_GET['file']."
.txt";//要下載的文件名header("Content-Type:application/force-download");header("Content-Disposition:attachment;filename=".
接著第二個header函數設置了要下載的文件,注意這里filename是不包含路徑的文件名,所以用basename過濾掉路徑名。這個
filename的值將來就是點擊下載後彈出對話框裡面的文件名,如果帶路徑的話,彈出對話框的文件名就是未知的,這個要注意,我就犯了這個錯誤,後來憑
經驗自己改了,居然對了。
最後就是readfile,將文件流輸出到瀏覽器,這樣就實現了txt文件的下載,其他類型的類似。

⑻ php。求php點擊頁面內按鈕生成文件並立即下載該文件的思路

Ajax請求後,返回已生成文件的路徑 url_path, 然後 window.location.href = url_path;
如果不在本頁面跳轉就用window.open(url_path);

⑼ PHP實現文件下載

2種方法

1直接做個超鏈接,地址為文件的地址

<ahref="文件地址">下載</a>


2流輸出

<?php
$file=fopen('文件地址',"r");
header("Content-Type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Accept-Length:".filesize('文件地址'));
header("Content-Disposition:attachment;filename=文件名稱");
echofread($file,filesize('文件地址'));
fclose($file);
?>

推薦第二種


因為第一種方法只能下載瀏覽器不能解析的文件,比如rar啊,腳本文件之類。如果文件是圖片或者txt文檔,就會直接在瀏覽器中打開


而第二種方法是直接輸出的文件流,不存在上述問題

⑽ php中怎麼實現文件下載功能

兩種方法:

1.直接做個超鏈接,地址為文件的地址

<ahref="文件地址">下載</a>

2.流輸出

<?php

$file=fopen('文件地址',"r");

header("Content-Type:application/octet-stream");

header("Accept-Ranges:bytes");

header("Accept-Length:".filesize('文件地址'));

header("Content-Disposition:attachment;filename=文件名稱");

echofread($file,filesize('文件地址'));

fclose($file);

?>

推薦第二種

因為第一種方法只能下載瀏覽器不能解析的文件,比如rar啊,腳本文件之類。如果文件是圖片或者txt文檔,就會直接在瀏覽器中打開。

而第二種方法是直接輸出的文件流,不存在上述問題。

你可以檢查一下你傳值過來的路徑是否正確,還有,流輸出後面不要再進行任何操作了。

拓展資料:

集成開發環境是一種集成了軟體開發過程中所需主要工具的集成開發環境,其功能包括但不僅限於代碼高亮、代碼補全、調試、構建、版本控制等。一些常見的PHP IDEs如下:

PHP的特性包括:

1. PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。

2. PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,

PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;

PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。

3. PHP支持幾乎所有流行的資料庫以及操作系統。

4. 最重要的是PHP可以用C、C++進行程序的擴展!

參考資料:網路:PHP

閱讀全文

與php點擊下載文件相關的資料

熱點內容
android伸縮控制項 瀏覽:851
androidm3u8緩存 瀏覽:234
imphp開源知乎 瀏覽:706
清除網路通配符dos命令 瀏覽:837
鴻蒙系統怎麼快速換回安卓 瀏覽:712
pdf綠色虛擬列印機 瀏覽:213
androidtab框架 瀏覽:147
java轉php的時間戳 瀏覽:640
編譯libstdc依賴 瀏覽:659
清演算法人與原法人的區別 瀏覽:410
家庭裝修下載什麼app軟體 瀏覽:576
美食博主用什麼app拍視頻 瀏覽:817
ipone手機如何加密微信 瀏覽:358
自來水加密閥閥帽 瀏覽:438
華為交換機dhcp配置命令 瀏覽:319
androidbitmap縮小 瀏覽:275
單片機串口控制燈 瀏覽:88
大訊雲伺服器安裝視頻 瀏覽:788
華為演算法領先世界 瀏覽:658
linux路由重啟 瀏覽:570