作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在寻找一种将文件上传到 s3 的方法。我正在使用 Django。我目前正在使用亚马逊的 python 库以及以下代码进行上传:
查看:
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
我真的不明白我做错了什么。有人可以指出我正确的方向吗?
编辑:以防万一有人想知道,我计划在实际上传工作后添加一些验证。
最佳答案
您将必须为 FORM 元素提供 enctype 属性(我以前被这个困扰过)。例如,您的 FORM 标记应如下所示:
<form action="/submitpicture/" method="POST" enctype="multipart/form-data" >
如果没有 enctype,您会发现自己的 request.FILES 是空的。
关于python - 如何使用 django (python) 和 s3 上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/319923/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!