- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下从 http POST 保存的文件,我想使用 werkzeug parse_form_data() 使用 Python 进行解析。请注意,我不是通过请求而是通过文件获取它。由于其他原因,我无法直接从 flask 请求中获取文件。由于我一直在使用 Flask,所以我尝试使用 werkzeug 来做到这一点。我以为我对无关连字符“--”的边界有问题,但我在以下测试文件中将所有内容修剪为非常简单的格式:
这是文件系统上的文件(myinputfile):
--806243354728155036129379
Content-Disposition: form-data; name="myfile"; filename="text.py"
Content-Type: application/octet-stream
some text in a file
--806243354728155036129379
Content-Disposition: form-data; name="field1"
abcde
--806243354728155036129379
Content-Disposition: form-data; name="field2"
123456678
--806243354728155036129379--
这是我使用的代码:
from werkzeug import parse_form_data
import io
inputfile = 'myinputfile'
content_type = 'Content-Type: multipart/form-data; boundary=806243354728155036129379'
environ = {
'wsgi.input': io.open(inputfile, 'rb'),
'CONTENT_LENGTH': '',
'CONTENT_TYPE': content_type,
'REQUEST_METHOD': 'POST'}
stream, form, files = parse_form_data(environ, silent=False)
我不断收到此错误:
File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 92, in parse_form_data
cls, silent).parse_from_environ(environ)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 171, in parse_from_environ
content_length, options)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 195, in parse
content_length, options)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 100, in wrapper
return f(self, stream, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 212, in _parse_multipart
form, files = parser.parse(stream, boundary, content_length)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 519, in parse
return self.cls(form), self.cls(files)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/datastructures.py", line 406, in __init__
for key, value in mapping or ():
File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 517, in <genexpr>
form = (p[1] for p in formstream if p[0] == 'form')
File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 476, in parse_parts
for ellt, ell in self.parse_lines(file, boundary, content_length):
File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 395, in parse_lines
self.fail('Expected boundary at start of multipart data')
File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 327, in fail
raise ValueError(message)
ValueError: Expected boundary at start of multipart data
最终我希望能够保存文件(可以是二进制的),并从字典中获取表单数据“Field1”和“Field2”。有任何想法吗?我也愿意使用其他方法。
最佳答案
好吧,我明白了。最初我以为内容长度可以留空。它的工作原理是指定长度,如下所示:
这是我使用的最终代码:
def fileuploaded():
import io
# print 'request headers {}'.format(request.headers)
rawfilename = request.headers.get('X_File')
content_type = request.headers.get('Content-Type')
print 'rawfilename = {}'.format(rawfilename)
print 'content_type= {}'.format(content_type)
# build the environ with the file stream
environ = {
'wsgi.input': io.open(rawfilename, 'rb'),
'CONTENT_LENGTH': os.path.getsize(rawfilename),
'CONTENT_TYPE': content_type,
'REQUEST_METHOD': 'POST'}
stream, form, files = parse_form_data(environ, silent=False)
f = files.get('infile')
f.save('/newfilepath/{}'.format(f.filename))
关于python - 使用 werkzeug 从文件中解析和保存多部分表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43827471/
我一直在开发一个 .NET 字符串格式化库来协助应用程序的本地化。它称为 SmartFormat 并在 GitHub 上开源. 它试图解决的问题之一是 Grammatical Numbers .这也称
leetcode关于单数II的题目是: 给定一个整数数组,除一个元素外,每个元素出现三次。找到那一个。笔记:您的算法应该具有线性运行时复杂度。你能在不使用额外内存的情况下实现它吗? 其实我已经从网站上
我想知道创建/命名模型的首选方法是什么? 我的应用程序有一个“用户”模型,其中包含用于创建、获取、更新(等)用户记录的所有相关业务逻辑。 在我的一些 Controller 中,我可能想要获取多个“用户
在我的 Mysql 数据库中,我有一个术语列表,例如(首字母大写,大多数时候是复数) Hairdressers Restaurants Beauty Salons Fournitures For Re
如果我决定为我的所有路线名称使用复数形式,但某些资源仅作为一个东西存在,您是否将其保持为单数(更直观)或尊重使用复数的决定并保持这种方式? 我们正在用 PHP 为我们的客户门户网站设计一个新的 API
我可能在做一些愚蠢的事情,但是...... 应用/模型/user.rb: class User 然后,当我导航到 /users/123/totem/new 时,出现错误: ActionView::
您能否澄清一些 Matplotlib 术语: “subplots”(或“subplot”?)这个词是“axes”的同义词吗? “轴”和“轴”的单数/复数是什么? 最佳答案 这确实是一个令人困惑的问题。
我有一个 profile我的应用程序中的模型。我想允许用户通过 /profile 查看他们自己的个人资料,所以我创建了这条路线: resource :profile, :only => :show 我
我是一名优秀的程序员,十分优秀!