Django 文件上传与下载的相关问题

一、文件上传

# 注意点1:需要过滤掉文件名中的中文字符,否则无法正常保存
newFileName = filter_chinese_and_punctuation_exclude_dot(newFileName)
path = os.getcwd() + settings.MEDIA_URL + settings.AUDIO_URL + newFileName
# 根据路径打开指定的文件(以二进制读写方式打开)
fw = open(path, 'wb+')
# 注意点2:chunks将对应的文件数据转换成若干片段, 分段写入, 可以有效提高文件的写入速度, 适用于2.5M以上的文件
for chunk in oriFile.chunks():
    fw.write(chunk)
    fw.close()
print("文件上传成功," + path)

二、txt文件下载

# 定义下载方法
def exportTxt(request):
    # 注意点3:这里若用Content-Type='text/plain',则导出的内容显示在浏览器
    # response = HttpResponse(Content-Type='text/plain')
    # 用'application/octet-stream',则导出txt文件下载
    response = HttpResponse(content_type='application/octet-stream')
    # 注意点4:若导出的文件名包含中文,则会导致文件名不符合预期结果(实际测试时,文件名变成了方法名),需要使用escape_uri_path方法对文件名进行处理。
    response['Content-Disposition'] = 'attachment;filename{}'.format(escape_uri_path(filename))
    response.write("txt内容1\n")
    response.write("txt内容2\n")
    return response

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值