本文目录一览:
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');//实际的文件路径
?
其他文件类型的写法参考