Django 如何下载文件
在Django项目中:
用到 MEDIA_URL = "/media/" 如何下载文件
一、如果保存的时候更改了上传的文件名字,下载时想要和上传的时名字一样,需要编写下载函数。
接下来编写的是下载文件的函数:
from django.http import FileResponse def download_file(request): try: url = "file.txt" # 文件路径 file_name = "file_name" # 文件名字 file_path = os.path.join(settings.MEDIA_ROOT, url) # MEDIA_ROOT = os.path.join(BASE_DIR, "media") try: response = FileResponse(open(file_path, 'rb'), as_attachment=True) except: # 意外报错的话下载自己准备的错误文件 response = FileResponse(open(os.path.join(settings.MEDIA_ROOT, "error.txt"), 'rb'), as_attachment=True) file_name = "error.txt" # 重命名 response['Content-Disposition'] = 'attachment;filename="{}"'.format(escape_uri_path(file_name)) # escape_uri_path(file_name) 给文件重命名 return response except Exception as e: return HttpResponse("没找到对应的文件,下载失败")
二、如果上传时没有更改文件名,可以直接时候 ‘media’
例如:<a href="/media/{% url '文件路径' %}"></a>

浙公网安备 33010602011771号