【发布时间】:2016-06-24 15:48:42
【问题描述】:
我有一个 django 项目,我想将其中的所有图像上传到 S3。我已经安装了 boto3 并且能够打印出我的存储桶。因此我知道我有明确的联系。现在我的下一步是使用 ajax 将文件推送到 S3。以下是我目前的设置。这种方法会奏效吗?我偶然发现的一个问题是 Chrome 返回 C:\fakepath\filename。
Django 视图:
def change_project_image(request):
image = request.POST['image']
data = open(image, 'rb')
s3.Bucket('bucket-name').put_object(Key='filename.jpg', Body=data)
return HttpResponse('temporary return')
Javascript:
$('#project-image-upload').on('change', function(){
var image = $(this).val();
$.post('/project/change-project-image/', {image:image} function(data){
}, 'json');
});
HTML:
<label class="btn btn-default btn-file">
Browse <input id="project-image-upload" type="file">
</label>
【问题讨论】:
-
当你尝试这个时会发生什么?
-
@JordonPhillips 控制台返回 500 错误:IOError at /project/change-project-image/ [Errno 2] 没有这样的文件或目录:u'C:\\fakepath\\e46.jpg '
-
@SamMunroe
image = request.POST['image']错误显示没有图像。试试request.FILES['image']
标签: ajax django amazon-s3 jquery-file-upload boto3