導航:首頁 > 編程語言 > php生成文件下載

php生成文件下載

發布時間:2022-08-29 02:31:48

1. 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

2. PHP網頁上打包文件生成壓縮文件zip,並彈出下載

既然你只是想學習如何打包.


那我重點就回答你這一塊,正好我剛剛用到;

$filename="./".date('YmdH').".zip";//最終生成的文件名(含路徑)
//生成文件
$zip=newZipArchive();//使用本類,linux需開啟zlib,windows需取消php_zip.dll前的注釋
if($zip->open($filename,ZIPARCHIVE::CREATE)!==TRUE){
exit('無法打開文件,或者文件創建失敗');
}

//$fileNameArr就是一個存儲文件路徑的數組比如array('/a/1.jpg,/a/2.jpg....');

foreach($fileNameArras$val){
$zip->addFile($val,basename($val));//第二個參數是放在壓縮包中的文件名稱,如果文件可能會有重復,就需要注意一下
}
$zip->close();//關閉

//下面是輸出下載;
header("Cache-Control:max-age=0");
header("Content-Description:FileTransfer");
header('Content-disposition:attachment;filename='.basename($filename));//文件名
header("Content-Type:application/zip");//zip格式的
header("Content-Transfer-Encoding:binary");//告訴瀏覽器,這是二進制文件
header('Content-Length:'.filesize($filename));//告訴瀏覽器,文件大小
@readfile($filename);//輸出文件;

3. php執行file_put_contents後生成的文件如何自動下載到本地

file_put_contents只能生成文件在伺服器上,無法讀寫客戶端的文件系統,這是WEB的協議決定了的。

要想把file_put_contents生成在伺服器上的文件發給瀏覽器用戶,只有用下載的辦法:文件生成到WEB可以訪問的路徑,然後使用<a href>建立鏈接讓用戶下載,示例代碼:
file_put_contents('a.txt', $str);
echo '<a href=a.txt>下載文件</a>';

4. php實現文件下載代碼~

echo "<a href='$file'>".$file."</a>"需要絕對路徑,而且注意目錄是不可以下載的。
<?php
$root="d:/";
if(is_dir($root)){
$openHandle=opendir($root);
while(false!==($file=readdir($openHandle))){
if(!is_dir($root.$file))
echo "<a href='$root$file'>".$file."</a><br/>";

}
closedir($openHandle);
}
else {
echo "文件夾不存在";
}

?>

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

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

6. PHP如何遍歷指定文件夾,獲取所有文件列表並生成下載鏈接

試編寫代碼如下:

<?php

$dir="D:/WWW/ftp";//指定的路徑
$sitepath='http://localhost/ftp/';
//遍歷文件夾下所有文件
if(false!=($handle=opendir($dir))){
echo"$dir目錄下的文件列表:<BR/>";
$i=0;
while(false!==($file=readdir($handle))){
if($file!="."&&$file!=".."&&!is_dir($dir.'/'.$file)){
echo'<ahref="'.$sitepath.$file.'">'.$file.'</a><br/>';
}
}
//關閉句柄
closedir($handle);
}

?>


代碼中需要提示的是:


如果是運行於互聯網上,需要考慮文件的訪問安全性。


運行截圖:


7. php下載文件

這個要在PHP中修改,文件保存時生成的文件名,這個一般都是自定義的,所以要你去代碼中修改下定義名稱就可以了

8. php 如何提供文件下載

$file_dir = "/public/www/download/";

路徑不能這樣寫,沒看問題補充以為你在linux下,
windows不能用/public/www/download/,
一定要用c:\public\www\download\,相信你應該能明白吧。

個人簽名
-----------------------------------------------------
PHP開源網:http://www.php-open.org
PHP開源論壇:http://bbs.php-open.org
-----------------------------------------------------

9. php導出excel表、壓縮成文件下載到本地如何實現

你好!你所提出的三個問題.我沒怎麼看懂.如果以第二個為主.我倒可以說說我的看法.
一.如何把數據賦到excel中?
答:sorry.沒怎麼明白.見諒.
二.導出為excel表?
答:有兩種方法實現.1.phpexcel.(稍顯復雜) 2.簡單的(我講這個.簡單^_^)直接上代碼.自己改一下名字 和欄位名.就成.
<?php
error_reporting(0); //屏蔽警告和NOTICE等所有提示.包括error
Header( "Content-type: application/octet-stream ");
Header( "Accept-Ranges: bytes ");
Header( "Content-type:application/vnd.ms-excel;charset=Big5"); //此處寫編碼,如,UTF-8....
Header( "Content-Disposition:attachment;filename=abnormal_Report.xls "); //自己寫文件名 *.xls
require "conn_mysql.php"; //連接mysql
$sql = "select * from `netart`.`abnormal_records` order by record_abtime desc";
$result = mysql_query($sql,$conn);
echo "<table width='100%' border='1' >";
echo"<tr>";
echo "<td style='color:red'> <font size=4> ID </font></td>";
echo "<td style='color:red'> <font size=4>異常時間 </font></td>";
echo "<td style='color:red'> <font size=4>異常地點 </font></td>";
echo "<td style='color:red'> <font size=4>詳細內容 </font></td>";
echo "<td style='color:red'> <font size=4>提交人 </font></td>";
echo "<td style='color:red'> <font size=4>提交時間 </font> </td>";
echo "</tr>";
while ($rs=mysql_fetch_array($result)){
echo "<tr>";
echo "<td width='30'> {$rs['record_id']}</td>"; //用width 控製表格的寬度.自己改變.
echo "<td width='150'> {$rs['record_abtime']}</td>";
echo "<td width='80'> {$rs['record_abplace']}</td>";
echo "<td width='700'> {$rs['record_content']} </td>";
echo "<td width='60'> {$rs['record_username']} </td>";
echo "<td width='120'> {$rs['record_uptime']} </td>";
echo "</tr>";
}
echo "</tbale>";
?>
//以上代碼.自己去改一下名字.和欄位名就可以運行了.
==========================================================================
下面的代碼針對MSSQL:(基本跟 Mysql一樣啦.只是改用了ODBC)
<?php
error_reporting(0);
Header( "Content-type: application/octet-stream");
Header( "Accept-Ranges: bytes ");
Header( "Content-type:application/vnd.ms-excel;charset=Big5");
Header( "Content-Disposition:attachment;filename=Syslog_view.xls ");
require "conn_mssql.php";
session_start();
$flag1=@$_SESSION['flag_1'];
$flag2=@$_SESSION['flag_2'];
$flag3=@$_SESSION['flag_3'];
$content=@$_SESSION['content'];
$ip=@$_SESSION['ip'];
$content_2=@$_SESSION['content_2'];
$ip_2=@$_SESSION['ip_2'];
$time=@$_SESSION['time'];
if($flag1==1)
{ $sql_s="select SysLog.DateTime,SysLog.IP,SysLog.Message from NetPerfMon.dbo.SysLog where IP='$ip' and convert(varchar(10),DateTime,120)='$time' order by DateTime desc";}
if($flag2==2)
{ $sql_s="select SysLog.DateTime,SysLog.IP,SysLog.Message from NetPerfMon.dbo.SysLog where IP='$ip' and convert(varchar(10),DateTime,120)='$time' order by DateTime desc";}
if($flag3==3)
{$sql_s="select SysLog.DateTime,SysLog.IP,SysLog.Message from NetPerfMon.dbo.SysLog where IP='$ip' and Message like '%$content%' and convert(varchar(10),DateTime,120)='$time' order by DateTime desc";}

$res=odbc_do($link,$sql_s);
echo "<table width='100%' border='1'>";
echo"<tr>";
echo "<td style='color:red'> <font size=4> DateTime </font></td>";
echo "<td style='color:red'> <font size=4> Switch IP </font></td>";
echo "<td style='color:red'> <font size=4> Content</font></td>";
echo "</tr>";
while ($rs=odbc_fetch_array($res))
{
echo "<tr>";
echo "<td width='130'> {$rs['DateTime']}</td>";
echo "<td width='110'> {$rs['IP']}</td>";
echo "<td width='800'> {$rs['Message']}</td>";

echo "</tr>";
}
echo "</tbale>";
session_stop();
?>
三.壓縮成文件下載到本地?
答:此處也沒怎麼明白.因為,你做個按鈕/鏈接至上面的代碼.不就可以保存成excel到本地了..還要做什麼壓縮呢.
綜:回答完畢.希望能幫到你.

10. PHP如何生成臨時文件並下載

可以利用post方式提交表單,將文件上傳到伺服器上即可。上傳到伺服器的文件會存在臨時目錄下,然後利用move_uploaded_file函數可以將文件另存到其他目錄進行永久保存,如果不另存,請求返回之後該臨時文件就會刪除,在伺服器上再也找不到,如果需要該文件就需要重新上傳。 另外,php是伺服器端語言,是網頁瀏覽的結果提交到伺服器之後,伺服器調用php進行處理。瀏覽器端請使用JavaScript語言處理上傳前的操作。另外,由於安全性考慮,JavaScript是不能夠讀取用戶硬碟上的數據的,不然你知道後果,任何一家網站都可以搞到你硬碟上的資料,就沒有隱私可言了。 所以呢,還是將文件利用表單提交的方式上傳到伺服器,伺服器端怎麼處理,用什麼處理都隨你,php,python,c++都可以在伺服器端處理了,畢竟傳到伺服器就是伺服器的資源了。 頁面文件上你可以用input標簽瀏覽選擇本地的文件,然後submit就能夠上傳文件。這是一個基本技術點,請你專門花點時間弄懂吧。

閱讀全文

與php生成文件下載相關的資料

熱點內容
去哪裡找按摩師很漂亮的app 瀏覽:818
86x99用簡便演算法計算 瀏覽:829
php截圖flash 瀏覽:272
卸載聯想app哪個好 瀏覽:719
php文字轉圖片 瀏覽:329
豆客後台怎麼加密碼 瀏覽:574
jpg轉換pdf破解版 瀏覽:978
php基礎書籍推薦 瀏覽:777
伺服器與外網不通如何驗證 瀏覽:351
電子版是不是就是文件夾 瀏覽:50
游戲屬性文件加密 瀏覽:462
如何讓安卓手機桌面圖標下移 瀏覽:529
ubuntuphp5環境搭建 瀏覽:100
賭癮解壓視頻 瀏覽:917
晉城移動dns伺服器地址 瀏覽:296
php開源文庫系統 瀏覽:136
android記事本源碼 瀏覽:407
安卓11小游戲怎麼玩法 瀏覽:190
gif有損壓縮 瀏覽:937
windows下安裝linux命令操作 瀏覽:844