- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我搭建了linux+apache2.2.+wsgi+python环境来测试文件上传。总共有2个页面,第一个是让用户选择要上传的文件;第二个是让用户选择要上传的文件。另一个是处理文件上传。
预期结果:
上传的文件内容正确。
实际结果:
上传一个文件,但内容是原始文件内容加上http头和开始/结束行的一部分。像:
-----------------------------40976349392994148594600211
Content-Disposition: form-data; name="filename"; filename="configure.scan"
Content-Type: application/octet-stream
[original file content]
-----------------------------40976349392994148594600211
有人可以回答我吗?我将深深感谢您的帮助。
首页代码:
output= '<html><head>' +\
'<br>' + \
'</head><body>' + \
'<form name="form1" action=“/dynamic/postuploadfile.py” enctype="multipart/form-data" method=“post”>' +\
'File: <input type="file" name="test" size=50><br />' +\
'<input type=“submit” value="upload"/>' +\
'</form></body></html>'
def application(environ, start_response):
status = '200 OK'
response_headers = [('Content-type', 'text/html'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
第二页代码:
import os
def upload(environ):
# A nested FieldStorage instance holds the file
#fileitem = req.form['file']
data = environ['wsgi.input'].read(int(environ.get('CONTENT_LENGTH','0')))
message = ''
open('uploaded', 'wb').write(data)
message = 'The file was uploaded successfully'
return ( '<html><body>' + message + '</body><html>' )
def application(environ, start_response):
status = '200 OK'
output = upload( environ )
response_headers = [('Content-type', 'text/html'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
最佳答案
是的。这是正确的行为。通过使用mime封装,可以上传多个文件。否则你会怎么做?
看一下 python 的 cgi.FieldStorage
类,它具有处理用于 CGI 请求的 multipart mime 类型的各种功能。
不要天真地处理这个问题。在某些情况下,需要对文件内容进行编码或解码。最明显的情况是,当上传的文本文件本身包含分隔符字符串时(----------------------------40976349392994148594600211
在您的示例中),它需要以某种方式进行编码。
您还可以尝试 WSGI python 工具包 werkzeug,请参阅 http://werkzeug.pocoo.org/docs/http/#module-werkzeug.formparser
关于python - linux+apache2.2+wsgi+python 上传文件时出现额外内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9052146/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!