怎么上传文件django(python)和s3?
-
11-07-2019 - |
题
我在寻找一种方式将文件上载到s3。我使用django。我目前正在使用亚马逊的蟒蛇图书馆上载和下列代码:
观点:
def submitpicture(request):
fuser = request.session["login"]
copied_data = request.POST.copy()
copied_data.update(request.FILES)
content_type = copied_data['file'].get('content-type')
ffile = copied_data['file']['content']
key = '%s-%s' % (fuser, ''.join(copied_data['file']['filename'].split(' ')))
site_s3.save_s3_data(key, ffile, content_type)
模板:
<form action="/submitpicture/" method="POST">
<input type="file" id="file" name="file" />
<input type="submit" value="submit" />
</form>
然而,当我真正尝试运行它,我得到的以下错误:
"Key 'file' not found in <QueryDict: {}>"
#MultiValueDictKeyError
我真的没看见我在做什么错误的。可以有人指给我正确的方向?
编辑:只是以防万一有人的奇迹,我计划增加一些验证之后,我获得实际上传工作。
解决方案
您必须提供的enctype属性的FORM元素(我已经在这之前被咬伤)。例如,您的FORM标记应该是这样的:
<form action="/submitpicture/" method="POST" enctype="multipart/form-data" >
如果没有加密类型,你会发现自己与一个空request.FILES。
其他提示
而不是做这个手工我想借此看看存储后端大卫Larlet已Django的书面的 Django的存储器
加enctype="multipart/form-data"似乎喜欢的东西这就是值得一提的是,在"文件上传"部分的决docs(http://docs.djangoproject.com/en/dev/topics/http/file-uploads/).想法?
不隶属于 StackOverflow