python 新人求问 http.server 疑问

2016-07-20 21:44:20 +08:00
 Cabana

用 http.server 包开一个服务
在根目录 index.html 中的一个 a 标签:

	<p><a href="cgi-bin/print.py">点我试试</a></p>

在 chrome 浏览器中点开,就直接把 cgi-bin 目录下的 print.py 下载下来了。
但是在 ie 中点开,就能正常返回的 print.py 中 print 出来的 html 内容。

这是浏览器的锅吗?还是我姿势不对?

1700 次点击
所在节点    问与答
9 条回复
zjb861107
2016-07-20 21:58:07 +08:00
要直接下载一个文件,我们需要做两件事,
第一件事是:设定响应的内容类为“ application/octet-stream ”,大小写无关。
第二件事是:设置 HTTP 的响应头名字为: Content-Disposition ,设定值为: attachment; filename = theFileName 。这里的 theFileName 就是出现在文件下载对话框里的默认文件名,通常和所下载的文件名字相同,但也可以不同。


可以参考这篇文章,再深入研究 http://blog.csdn.net/u013687821/article/details/42088773
Cabana
2016-07-20 22:16:23 +08:00
@zjb861107 我的报文是写在 print.py 里 print 的内容里的,按理说应该响应的 raw 就是 print 的内容啊。
seki
2016-07-20 22:26:49 +08:00
你的 print.py 里面放的是什么内容?让我们复现一下
Cabana
2016-07-20 23:00:14 +08:00
@seki 就是直接 print 响应内容啊, response 的 raw
seki
2016-07-21 01:59:37 +08:00
@Cabana ……如果可以的话还是把你的两个 py 代码都贴出来吧,或者说你用的哪一篇文章里的代码。你给的信息不足
hanxiV2EX
2016-07-21 08:37:47 +08:00
哈哈哈!
shyling
2016-07-21 08:48:22 +08:00
content-type 。。。
Cabana
2016-07-21 09:45:49 +08:00
@seki 把图都贴出来了
seki
2016-07-21 15:00:23 +08:00
python 3.5
执行起来没什么问题
Chrome 51
IE 11
Firefox 49

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/293801

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX