當前位置:首頁 » 編程語言 » php網頁下載

php網頁下載

發布時間: 2023-08-12 18:11:35

『壹』 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網頁源碼下載後如何使用

  1. 下載後,最重要的是發布至伺服器上(外網的或者自己本地的)

  2. 網路上的php代碼,都需要伺服器的環境支持,所以需要,把代碼上傳至伺服器

    然後訪問該伺服器地址即可。

  3. 需要注意的是,有的時候可能需要另存為utf-8格式,再上傳。有的時候要檢查,是不是還需要資料庫的支持。


『叄』 打開PHP頁面總是變為下載是怎麼回事啊拜託了各位 謝謝

一般這個問題是一個相關的DLL文件注冊出錯了。我們可以試試下面的步驟看能否解決:關閉所有瀏覽器窗口,單擊「開始/運行」,輸入:regsvr32 msxml3.dll並回車,如果出現成功的提示即可解決問題,如果不行,從網上搜索並下載或從其它電腦拷貝該DLL文件,並將其放到c:\windows\system32目錄中,然後再按上述方法注冊該文件即可。 查看更多答案>>

『肆』 網站下載 php網頁下載

/*
*功能:php多種方式完美實現下載遠程圖片保存到本地
*參數:文件url,保存文件名稱,使用的下載方式
*當保存文件名稱為空時則使用遠程文件原來的名稱
*/
functiongetImage($url,$filename='',$type=0){
if($url==''){returnfalse;}
if($filename==''){
$ext=strrchr($url,'.');
if($ext!='.gif'&&$ext!='.jpg'){returnfalse;}
$filename=time().$ext;
}
//文件保存路徑
if($type){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ch);
}else{
ob_start();
readfile($url);
$img=ob_get_contents();
ob_end_clean();
}
$size=strlen($img);
//文件大小
$fp2=@fopen($filename,'a');
fwrite($fp2,$img);
fclose($fp2);
return$filename;
}

『伍』 為什麼開啟php 網頁變成下載求解決方法

這個是伺服器的iis沒有設置好,iis6.0的話是取消勾選那個目錄瀏覽

『陸』 php文件怎麼下載

如果是PHP頁面的話是不能直接下載的,除非更改文件後綴或者壓縮成rar等其他格式的壓縮包才能下載……
像你說的這種情況,通常是因為你想要下載的種子文件已經被刪除或者你沒有登錄提供下載的網站,所以返回了一個下載失敗的頁面,並被保存成PHP格式。你用記事本打開這個php文件就可以看到裡面的內容了,可以百分百的肯定是下載失敗提示的頁面代碼。要解決這個問題最好的辦法就是換個站點下載,或者重新搜索查找下載你所需要的文件。

『柒』 請問怎樣下載網址後綴為php的網頁上的視頻文件[緊急]

PHP是動態網頁編程文件,不是什麼格式,是一門網頁編程語言。.php後綴名是它的文件。用在伺服器端執行。一般用IIS或Apache伺服器上運行。如果你有PHP源碼文件,可以用記事本打開,即可看見裡面的代碼。

php是網頁的一種語言,如果下載的文件是這個格式說明你下載失敗,沒有必要打開PHP文件,再找找別的網站下載或者重新下載!

熱點內容
問解壓 發布:2025-03-19 03:29:44 瀏覽:808
原神手機號如何修改賬號密碼 發布:2025-03-19 03:29:22 瀏覽:186
汽車配置哪些最省錢 發布:2025-03-19 03:10:16 瀏覽:517
如何讓自己伺服器ip不更換 發布:2025-03-19 03:05:07 瀏覽:231
存儲卡是怎麼製造的 發布:2025-03-19 02:57:15 瀏覽:491
怎麼設置區域網伺服器 發布:2025-03-19 02:54:25 瀏覽:338
php備份 發布:2025-03-19 02:54:11 瀏覽:645
如何把本機域名映射到伺服器上 發布:2025-03-19 02:44:20 瀏覽:24
如何連接非本地伺服器 發布:2025-03-19 02:44:17 瀏覽:573
泡泡堂伺服器地址 發布:2025-03-19 02:43:38 瀏覽:898