Django中点击图片链接强制直接下载的代码

2022-03-11 00:00:00 代码 强制 图片链接

当用户点击图片连接时,默认为在浏览器中直接开打图片,这段代码可以让图片链接变成下载
这段代码也非常适合下载大文件,基本不会消耗内存,每次只读取一部分数据到内存,然后提供下载

def Download(request):
    def readFile(fn, buf_size=262144):
        f = open(fn, "rb")
        while True:
            c = f.read(buf_size)
            if c:
                yield c
            else:
                break
        f.close()
    filename = './pidancode.com.jpg'
    try:
        response = HttpResponse(readFile(file),mimetype='application/octet-stream')
        response['Content-Disposition'] = 'attachment; filename=%s' %'附件'
    except:
        response = HttpResponse('')
    return response

相关文章