2
我有這個視圖,它需要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。我如何強制在瀏覽器中下載圖像?
@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)
url = ui.image.url
...
... FORCE DOWNLOAD THE IMAGE
...
except UserImage.DoesNotExist:
...
... ERROR, NO IMAGE AVAILABLE
...
我已經做了這樣的事情,使用Apache2的xsendfile,這有幫助嗎? – Ykh
@Ykh謝謝你,但我不太確定。 – Kakar