私はuser_idとimage_idを取るこのビューを持っています。ユーザーがリンクをクリックすると、画像があるかどうかを確認します。もしあれば、ファイルを自動的に強制的にダウンロードしたいと思います。djangoとaws s3をクリックして強制的にイメージをダウンロードする方法
テンプレート:
<a class="downloadBtn" :href="website + '/download-image/'+ user_id+'/'+ image_id +'/'">Download</a>
私は私のローカルマシンでそれを開発し、このコードが動作していた前。
@api_view(['GET'])
@permission_classes([AllowAny])
def download_image(request, user_id=None, image_id=None):
try:
ui = UserImage.objects.get(user=user_id, image=image_id)
content_type = mimetypes.guess_type(ui.image.url)
wrapper = FileWrapper(open(str(ui.image.file)))
response = HttpResponse(wrapper, content_type=content_type)
response['Content-Disposition'] = 'attachment; filename="image.jpeg'
return response
except UserImage.DoesNotExist:
...
私は静的ファイルとメディアファイルにaws s3を使用しています。私はdjango-storageとboto3を使用しています。ブラウザで画像を強制的にダウンロードするにはどうすればよいですか?
私はapache2でこのxsendfileを使用するような何かをしました。これは役に立ちましたか? – Ykh
@Ykhありがとうございますが、私はあまりよく分かりません。 – Kakar