前提・実現したいこと
Djangoでユーザーがアップロードをした音源ファイルを加工して、それをダウンロードできるアプリを作ろうとしています。機能の一つとしてリンクをクリックしたときに、ファイルのダウンロードを強制しようとしています。
発生している問題・エラーメッセージ
ファイルのリンクをクリックしたときにダウンロードを強制させるためContent-Disposition: attachment;を設定しました。またfilenameも設定しました。filenameにローマ字のみが含まれるファイルの場合ダウンロードすることが出来ました。filenameに日本語を含む場合ブラウザでファイルが開き音楽が生成されました。
該当のソースコード
views.py
python
1def download(request, pk): 2 """clickでdownloadを実行""" 3 uploaded_music = get_object_or_404(Music, pk=pk) 4 filename = uploaded_music.name 5 guessed_type = mimetypes.guess_type(filename)[0] 6 response = HttpResponse(content_type=guessed_type or 'application/octet-stream') 7 response['Content-Disposition'] = f'attachment; filename={filename}' # force download 8 shutil.copyfileobj(uploaded_music.file, response) # copy file to response 9 return response
試したこと
日本語名を含むファイルをコピーし、そのファイル名をローマ字のみにしてダウンロードのリンクをクリックするとダウンロードできました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/16 13:25
2021/07/16 13:34