免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5905 | 回复: 1
打印 上一主题 下一主题

[文件] 如何利用http协议传送文件? [复制链接]

论坛徽章:
0
1 [报告]
发表于 2006-06-20 12:14 |显示全部楼层
你提问要求直接返回文件。

浏览器只能打开部分类型的文件,比如 .html,  .jpeg

像 excel, word这样的文件都不一定直接打开。

要调整 Content-Type, Content-Disposition 的内容输出才行

比如 Content-Type: text/html;charset=gb18030
....

请多参考一下http协议方面的内容。

论坛徽章:
0
2 [报告]
发表于 2006-06-21 09:54 |显示全部楼层
当然不是输出href, c的我没写过

java的写法是把一个文件用BufferedReader读取,然后输出到浏览器,由于在Content-Type, Content-Disposition的设置,使得浏览器能够认出文件的名称和类型。

而向你所说的,就是没有物理文件,把数据库查询结果输出到文件,那么更加简单了,连BufferedReader都不需要的。估计像newzy那样写就可以了。


其他cgi都是类似写法。

向你上面说的不要弹出一个对话框什么的,这个要看客户的浏览器的,比如mozilla允许在浏览器中browse如下mime的文件

text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

那么你的Content-Type要指定这些类型的,Content-Disposition指示浏览器是“内嵌”显示文件还是把它当作附件处理。

例1.内嵌显示一个文件
Content-disposition: inline; filename=foobar.pdf
例2.往response里附加一个文件
Content-disposition: attachment; filename=foobar.pdf


不多说了,你自己多调试把。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP