- 论坛徽章:
- 0
|
- #!f:/ux/python26/python
- # -*- coding: utf-8 -*-
- import sys, os
- import glob
- import cgi
- import cgitb
- import urllib
- #cgitb.enable(0, 'r:\\')
- form = cgi.FieldStorage()
- if 'name' in form:
- name = form['name'].value
- header = [
- "Content-Type: application/octet-stream",
- "Content-Transfer-Encoding: binary",
- "Accept-Ranges: bytes",
- "Accept-Length: %d" % os.stat(urllib.unquote(name)).st_size,
- "Content-Disposition: attachment;filename=\"%s\"" % os.path.basename(urllib.unquote(name)),
- "\r\n"
- ]
- sys.stdout.write("\r\n".join(header))
- data = open(name, 'rb').read()
- sys.stdout.write(data)
- sys.stdout.flush()
- if os.path.isdir('r:\\'):
- metaf = [str(len(data)), urllib.unquote(name), os.path.abspath(urllib.unquote(name))]
- open('r:\\ot.txt', 'wb').write('\r\n'.join(metaf))
- else:
- print "Content-Type: text/html\n"
- 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写的不对啊。
在网上查到的都是一样的。 试加了很多其它头部,还是一样的问题, 谁给解答一下 |
|