0
私はS3にすべての画像をアップロードしたいdjangoプロジェクトを持っています。私はboto3をインストールしてバケツを印刷することができます。したがって、私は明確なつながりを持っていることを知っています。今私の次のステップは、ajaxを使ってS3にファイルをプッシュすることです。以下は現在の設定です。このアプローチは機能しますか?私が遭遇した1つの問題は、ChromeがC:\ fakepath \ filenameを返すという事実です。DjangoのAjaxとBoto3を使ってS3にファイルをアップロード
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エラーが返されます。/ project/change-project-image/ のIOError [Errno 2]このようなファイルまたはディレクトリはありません:u'C:\\ fakepath \\ e46.jpg ' –
@SamMunroe 'image = request.POST ['image'] 'エラーはイメージがないことを示します。 'request.FILES ['image']'を試してみてください。 – ravigadila