- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个从输入字段中选择并通过 Django 中的表单发布的图像文件。
我要发布到另一台服务器的表单数据和图像.
问题好像是,请求中的文件数据是一个InMemoryUploadedFile类型,需要和其他posted数据(json格式)一起转换。
基本上我的代码是:
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
def some_view(request):
files=None
if request.FILES:
key = 'expected_image_name' #something else here, but not relevant
if key in request.FILES:
memfile = request.FILES.get(key, None)
if memfile:
files={}
# note this works: but does not upload the file:
# files["image"]= memfile.read()
# So trying a lot of other things, like:
files["image"]= ContentFile(memfile.read(), name=memfile.name).read()
# I also retrieve some data from request.Post... but for simplycity lets say it is:
post_values = {"some_other_field": "whatever"}
register_openers()
url="My post url"
# for simplycity I leave out the authentication, the problem is not in there
if files:
multi_data=post_values
multi_data.update(files)
datagen, headers = multipart_encode(multi_data)
request = urllib2.Request(url, datagen, headers)
response = urllib2.urlopen(request)
else:
request = urllib2.Request(url)
response = urllib2.urlopen(request,data)
无论我尝试什么...文件都没有上传到服务器。
记录响应...项目已创建...但图像 = null
有人对我在这里忽略的内容提出了建议....
编辑 2013 年 6 月 4 日星期二
我把这个日志放在最后:'if files' 部分 logger.debug('DEBUG: 数据生成: %s' % 数据生成) logger.debug('DEBUG: headers: %s' % headers)
我在那边得到了这个:
DEBUG get_response: datagen: <poster.encode.multipart_yielder instance at 0x7fdb7cca4200>
DEBUG get_response: headers: {'Content-Length': '30349', 'Content-Type': 'multipart/form-data; boundary=baa9e321554a49c6b626c68860a90aaf'}
更多信息:我从 jquery 输入表单发送它
html 中的表单如下所示:
<form data-ajax="false" id="form_5" method="post" enctype="multipart/form-data" action="My url to the view above">
<div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='z47GsVwsBOzu3HrUMIZaI4hoyV2ljLVa' /></div>
<!-- and some other fields in input fields -->
<input type="file" name="expected_image_name" data-role="button" id="expected_iamge_name" value="Select photo"/>
<input type="submit" value="Submit">
</form>
最佳答案
这很有帮助:Post request with multipart/form-data in appengine python not working
multipart_encode 好像不能直接拿一个内存文件...
所以我将代码更改为:
添加了一个导入:
from poster.encode import MultipartParam
files["image"]= MultipartParam("image", filename=memfile.name, filetype=memfile.content_type, fileobj=memfile.file)
这有效!!!
关于python - 将文件输入字段中的 InMemoryUploadedFile 发布到另一个外部服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16905724/
我有一个用户将文件上传到网站,我需要解析电子表格。这是我的代码: input_file = request.FILES.get('file-upload') wb = xlrd.open_workbo
有谁知道如何将 Django2 中上传文件( InMemoryUploadedFile )的内容转换为字符串? 我想知道下面的怎么写convert2string() : uploaded_file =
我有一个从输入字段中选择并通过 Django 中的表单发布的图像文件。 我要发布到另一台服务器的表单数据和图像. 问题好像是,请求中的文件数据是一个InMemoryUploadedFile类型,需要和
我正在尝试在 Django 中发送带有附件的电子邮件。文件是 request.FILE['file']对象(InMemoryUploadedFile 类型)。我通过 EmailMessage(...)
我在将图像从 Django 上传到 S3 存储桶时遇到问题 我收到的错误是: 'InMemoryUploadedFile' object has no attribute 'get' 我看过类似的问题
我有一个 InMemoryUploadedFile 对象,当我对其进行 .read() 时,它会丢失其内容。 是否有可能从同一个对象中两次读取此内容?我试着 .copy() 它,但当然那不应该工作。
我正在 try catch 与表单一起发送的文件并在保存之前对其执行一些操作。所以我需要在临时目录中创建这个文件的副本,但我不知道如何访问它。 Shutil 的函数无法复制此文件,因为它没有路径。那么
我有一个模板,用户可以在其中选择并从他们的计算机上传文件。该文件最终会上传到 S3,但首先会使用自定义验证来验证文件的某些内容。为了检查内容,脚本读取 forms.py 中文件的行: from io
我让用户上传一个 txt 文件,然后提交它,这样我就可以在我的一个 View 中对该文件进行一些处理。 我遇到了一些问题,但在社区的帮助下,现在至少可以识别我表单中的 POST 方法。 发生的事情是我
我有一个在 Eclipse 上使用 Python2.7 和 Django1.2 的 Google Appengine 项目,它允许用户使用表单上传图片、调整图片大小并将其存储为 BLOB 字段。 我在
我的程序是在 Django 中。我从js请求中获取上传的文件。FILES: my_docs = {} for doc_title in request.FILES: doc_name = re
我知道打开一个文件只会创建一个文件处理程序,无论文件大小如何,它都会占用固定的内存。Django 有一个名为 InMemoryUploadedFile 的类型,它表示通过表单上传的文件。 我像这样在
我已阅读所有 documentation对于 TemporaryUploadedFiles 和 InMemoryUploadedFiles,但他们从不谈论清理。我知道 Python 临时文件需要关闭才
我有一个 django 表单,其中有一个接受用户简历的 FileField。我稍后会将简历转换为 html 文档。所以我想到立即对原始文档进行pickle并在其中存储一个数据库列,然后将其unpick
我有以下模型: class IdentifierImage(models.Model): super = models.ForeignKey(Super) identifier = m
我有一个简单的上传表单,其中包含一个图像 FileField : def post(request): if request.user.is_authenticated():
我一直在尝试 help(django.db.models.ImageField)和 dir(django.db.models.ImageField) ,寻找如何创建 ImageField来自上传图像的
所以我正在尝试制作一个包含一些数据和上传字段的表单。 Django 文档没有提供任何在没有 forms.py 的情况下执行此操作的好的教程。我不想用它。 我尝试在我的项目中使用 forms.py (
在 Django Rest 框架中,我想将作为 InMemoryUploadedFile 接收的文件在收到后立即发布到不同的服务器。 听起来很简单,但是 request.post() 函数似乎无法正确
我正在尝试将文件从 postman 上传到 s3 并在k.set_contents_from_filename(文件)类型错误:无效文件:你能看看吗?非常感谢。 序列化器.py from rest_f
我是一名优秀的程序员,十分优秀!