免费注册 查看新帖 |

Chinaunix

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

python CGI 下载文件,换行会被修改 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-31 17:31 |只看该作者 |倒序浏览
  1. #!f:/ux/python26/python
  2. # -*- coding: utf-8 -*-

  3. import sys, os
  4. import glob
  5. import cgi
  6. import cgitb
  7. import urllib
  8. #cgitb.enable(0, 'r:\\')

  9. form = cgi.FieldStorage()

  10. if 'name' in form:
  11.     name = form['name'].value
  12.     header = [
  13.         "Content-Type: application/octet-stream",
  14.         "Content-Transfer-Encoding: binary",
  15.         "Accept-Ranges: bytes",
  16.         "Accept-Length: %d" % os.stat(urllib.unquote(name)).st_size,
  17.         "Content-Disposition: attachment;filename=\"%s\"" % os.path.basename(urllib.unquote(name)),

  18.         "\r\n"
  19.         ]
  20.     sys.stdout.write("\r\n".join(header))
  21.     data = open(name, 'rb').read()
  22.     sys.stdout.write(data)
  23.     sys.stdout.flush()
  24.     if os.path.isdir('r:\\'):
  25.         metaf = [str(len(data)), urllib.unquote(name), os.path.abspath(urllib.unquote(name))]
  26.         open('r:\\ot.txt', 'wb').write('\r\n'.join(metaf))
  27. else:
  28.     print "Content-Type: text/html\n"
  29.     print "<html><head><title>Error</title></head><body><pre>Not has file name</pre></body></html>"
复制代码
windows 上搭建的apache2 和 php5服务器,浏览器打开
http://127.0.0.1/cgi-bin/downloa ... BC%FE%BC%D0/abc.jar

脚本会执行,但是下载的文件,内容中的\n 都会变成 \r\n, 这是不是header写的不对啊。

在网上查到的都是一样的。 试加了很多其它头部,还是一样的问题, 谁给解答一下

论坛徽章:
0
2 [报告]
发表于 2011-08-31 19:35 |只看该作者
原始文件应该是linux下的文件?
你下载到windows平台当然是\r\n,可以先把之前的文件转化成windows下的

论坛徽章:
0
3 [报告]
发表于 2011-09-01 12:40 |只看该作者
回复 1# windwiny
Content-Transfer-Encoding      http有这个头部么?

论坛徽章:
0
4 [报告]
发表于 2011-09-01 21:30 |只看该作者
一样的代码,放到 linux 服务器上运行就正常了

搞不清楚是 WIN 版 apache 还是 php 程序的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP