Django下解决小文件下载的问题

2022-05-03 00:00:00 文件 解决 下载

Django下下载文件我们可以通过yield巧妙的实现,可以自定义缓存大小,节省内存空间。

def bigFileView(request):
    # do something...
    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()
    file_name = "pidancode.com.txt"
    response = HttpResponse(readFile(file_name))
    return response

上面的方法可以解决文件的下载问题,并且,对于大文件的下载也是没有问题的。

相关文章