我正在使用Django和创建音频上传/下载应用
我想返回在视图中保存在templates/
中的.mp3文件。
请帮我。
谢谢。
答案 0 :(得分:0)
def get_music_view(request):
from django.templatetags.static import static
music = static('music/Billie Eilish - when the party\'s over (Viga Remix).mp3')
# static/music/Billie Eilish - when the party\'s over (Viga Remix).mp3
return redirect(music)
为我工作,并且不会导致ConnectionResetError
答案 1 :(得分:-1)
不将您的mp3文件保存在template
文件夹所在的位置。将用户上传的内容保存到MEDIA_ROOT,并在STATIC_ROOT中保存静态内容(如CSS,js,而不是用户内容图像)。
不提供带有Django代码的静态文件和媒体文件。用django服务器静态内容是一种不好的做法(例如,必须使用Nginx之类的东西来处理静态文件=>参见this和this)。
如果您坚持使用django提供静态文件,请在views.py
相关函数的末尾添加以下代码并返回mp3文件,如下所示:
def your_view_function(request):
# your other codes ...
file = open("/path/to/your/song.mp3", "rb").read()
response['Content-Disposition'] = 'attachment; filename=filename.mp3'
return HttpResponse(file, mimetype="audio/mpeg")