http报文

Sjx_sir 2016-04-21 01:26:02
通过http报文的方式 实现文件下载。 现在发现文件在IE8下 下载的时候报错,高版本或者别的浏览器下载都是正常的。 检查了很长时间,也没找出错误。而且下载的错误只在服务器下,本地测试无论什么版本都正常提示下载。因为网站现在都默认跳转到https,所以这个会不会和http报文有关系? 谢谢各位帮忙看看。
$fileDir = $_REQUEST['dir'];

$th = new ThBusiness();

$path = $_REQUEST['no'];
$fileName = $_REQUEST['name'];
$file = $file_dir."img/".$fileDir.'/'.$fileName;
$one = $th->getByFname($path,$fileName);
$fileName_new = $one[0]['TFILE_NAME'].'.'.$fname;

header("Content-type:application/octet-stream");
header("Content-Disposition:attachment;filename=".mb_convert_encoding($fileName_new, 'Shift_JIS', 'AUTO'));
readfile($file);
exit;
...全文
102 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sjx_sir 2016-04-21
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
怎么呢?比如
print_r(get_headers('http://bbs.csdn.net/topics/391938815'));
Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Thu, 21 Apr 2016 07:19:32 GMT
    [2] => Content-Type: text/html; charset=utf-8
    [3] => Connection: close
    [4] => Vary: Accept-Encoding
    [5] => Vary: Accept-Encoding
    [6] => ETag: "e55187e712d5cb6a82c0926a6c47929f"
    [7] => Cache-Control: max-age=0, private, must-revalidate
    [8] => Set-Cookie: _csdn_newbbs_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWZhOGM5ODBmZDI2ZjA0YWU4NDdjODYxMWQyNWZmMDkwBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXpMZmgrSnl2blQwOUI5SXlFWmVPRHJYK28wVlRxbDFmWlVYcFZ0eitDc009BjsARg%3D%3D--b048385e7f5c9b1dca0d93a5ff009765bf42f185; path=/; HttpOnly
    [9] => Set-Cookie: UserName=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
    [10] => Set-Cookie: UserInfo=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
)

引用 7 楼 xuzuning 的回复:
怎么呢?比如
print_r(get_headers('http://bbs.csdn.net/topics/391938815'));
Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Thu, 21 Apr 2016 07:19:32 GMT
    [2] => Content-Type: text/html; charset=utf-8
    [3] => Connection: close
    [4] => Vary: Accept-Encoding
    [5] => Vary: Accept-Encoding
    [6] => ETag: "e55187e712d5cb6a82c0926a6c47929f"
    [7] => Cache-Control: max-age=0, private, must-revalidate
    [8] => Set-Cookie: _csdn_newbbs_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWZhOGM5ODBmZDI2ZjA0YWU4NDdjODYxMWQyNWZmMDkwBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXpMZmgrSnl2blQwOUI5SXlFWmVPRHJYK28wVlRxbDFmWlVYcFZ0eitDc009BjsARg%3D%3D--b048385e7f5c9b1dca0d93a5ff009765bf42f185; path=/; HttpOnly
    [9] => Set-Cookie: UserName=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
    [10] => Set-Cookie: UserInfo=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
)

不好意思大哥 可能是我没说明白,其实我这个下载页面是假的, 当时没在页面写http报文。所以我就做了个这么个php 专门引用报文 总之就是 在这个php页面输出什么都不会有反馈。 不好意思 。 但是我知道我的错误在哪了 报文是没错的,IE的版本兼容要求在 IE6 7 8 的报文里添加 header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); 总之谢谢大哥帮忙 哈哈 长知识了 以后就按照你的方法查看报文了 哈哈
xuzuning 2016-04-21
  • 打赏
  • 举报
回复
怎么呢?比如
print_r(get_headers('http://bbs.csdn.net/topics/391938815'));
Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Thu, 21 Apr 2016 07:19:32 GMT
    [2] => Content-Type: text/html; charset=utf-8
    [3] => Connection: close
    [4] => Vary: Accept-Encoding
    [5] => Vary: Accept-Encoding
    [6] => ETag: "e55187e712d5cb6a82c0926a6c47929f"
    [7] => Cache-Control: max-age=0, private, must-revalidate
    [8] => Set-Cookie: _csdn_newbbs_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWZhOGM5ODBmZDI2ZjA0YWU4NDdjODYxMWQyNWZmMDkwBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXpMZmgrSnl2blQwOUI5SXlFWmVPRHJYK28wVlRxbDFmWlVYcFZ0eitDc009BjsARg%3D%3D--b048385e7f5c9b1dca0d93a5ff009765bf42f185; path=/; HttpOnly
    [9] => Set-Cookie: UserName=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
    [10] => Set-Cookie: UserInfo=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
)

Sjx_sir 2016-04-21
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
是一个数组,你仔细看看,至少有 5 个元素
不好意思 大哥 我真是没输出出来
xuzuning 2016-04-21
  • 打赏
  • 举报
回复
是一个数组,你仔细看看,至少有 5 个元素
Sjx_sir 2016-04-21
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
写个程序:
<?php
print_r(get_headers('带参数的url'));
执行一下就看到了
状态 200 ok
xuzuning 2016-04-21
  • 打赏
  • 举报
回复
写个程序:
<?php
print_r(get_headers('带参数的url'));
执行一下就看到了
Sjx_sir 2016-04-21
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
你看看实际发送的头内容
我不会看ie的请求头 不过我看了chrome的 正常的GET 200 这个针对每个浏览器请求会变化么? 现在这个功能只有在IE8 访问服务器上的时候不好用
xuzuning 2016-04-21
  • 打赏
  • 举报
回复
你看看实际发送的头内容

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧