首页 > 编程知识 正文

如何使用php来强制文件下载(怎么下载php文件)

时间:2023-11-29 12:18:48 阅读:310211 作者:DUFI

本文目录一览:

  • 1、php 弹出文件下载
  • 2、PHP中如何突破COOKIE进行下载PHP文件?
  • 3、php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
  • 4、用php如何实现下载任意格式的文件

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');//实际的文件路径

?

其他文件类型的写法参考

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。