本文目錄一覽:
php 彈出文件下載
通過指定header
如:
?php
$filename = “test.gif”;
header(‘Content-Type:image/gif’); //指定下載文件類型
header(‘Content-Disposition: attachment; filename=”‘.$filename.'”‘); //指定下載文件的描述
PHP中如何突破COOKIE進行下載PHP文件?
答案是不行的。
你即使下載下來了php,那也是執行後的頁面了。
你請求那個文件,伺服器有可能是apache,是它在管理如果響應請求,而它是解析php的,因此不可能下載下來。
—–
這個和COOKIE無關。迅雷的那個提示,也許是因為,那麼頁面是需要登陸才能顯示,因為你未登陸,所以顯示COOKIE無效。
但即使你登陸了,下載下來的也是一個執行後的php文件。
如果php文件可以下載,那網站還有什麼安全性呢?
php中強制下載文件的代碼(解決了IE下中文文件名亂碼問題)
中間遇到一個問題是提交的中文文件名直接放到header里在IE下會變成亂碼,解決方法是將文件名先urlencode一下再放入header,如下。
複製代碼
代碼如下:
?php
$file_name
=
urlencode($_REQUEST[‘filename’]);
header(“Pragma:
public”);
header(“Expires:
0″);
header(“Cache-Control:
must-revalidate,
post-check=0,
pre-check=0″);
header(“Content-Type:
application/force-download”);
header(‘Content-Type:
application/vnd.ms-excel;
charset=utf-8′);
header(“Content-Transfer-Encoding:
binary”);
header(‘Content-Disposition:
attachment;
filename=’.$file_name);
echo
stripslashes($_REQUEST[‘content’]);
?
解決PHP
Header下載文件在IE文件名中文亂碼有兩種常見的,一種是是把頁面編碼改成utf8,另一種是對中文url進入urlencode編碼就可以解決了。
解決方案一(我的頁面是utf-8編碼):
複製代碼
代碼如下:
$filename
=
“中文.txt”;
$ua
=
$_SERVER[“HTTP_USER_AGENT”];
$encoded_filename
=
urlencode($filename);
$encoded_filename
=
str_replace(“+”,
“%20”,
$encoded_filename);
header(‘Content-Type:
application/octet-stream’);
if
(preg_match(“/MSIE/”,
$ua))
{
header(‘Content-Disposition:
attachment;
filename=”‘
.
$encoded_filename
.
‘”‘);
}
else
if
(preg_match(“/Firefox/”,
$ua))
{
header(‘Content-Disposition:
attachment;
filename*=”utf8”’
.
$filename
.
‘”‘);
}
else
{
header(‘Content-Disposition:
attachment;
filename=”‘
.
$filename
.
‘”‘);
}
解決方法二
將文件名先urlencode一下再放入header,如下。
代碼如下:
複製代碼
代碼如下:
?php
$file_name
=
urlencode($_REQUEST[‘filename’]);
header(“Pragma:
public”);
header(“Expires:
0″);
header(“Cache-Control:
must-revalidate,
post-check=0,
pre-check=0″);
header(“Content-Type:
application/force-download”);
header(‘Content-Type:
application/vnd.ms-excel;
charset=utf-8′);
header(“Content-Transfer-Encoding:
binary”);
header(‘Content-Disposition:
attachment;
filename=’.$file_name);
echo
stripslashes($_REQUEST[‘content’]);
?
用php如何實現下載任意格式的文件
以下載PDF文件為例:
?php
header(‘Content-type: application/pdf’);//文件類型
header(‘Content-Disposition: attachment; filename=”downloaded.pdf”‘);//默認保存的文件名
readfile(‘original.pdf’);//實際的文件路徑
?
其他文件類型的寫法參考
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/228863.html