-1

django 1.4. 我正在尝试开发一个部署下载的功能。我没有得到正确的结果。我在下面附上了我的代码。当我点击超链接后下载时,我得到了一个 0 字节的文件。Content-Length0处于调试模式。我已经阅读了很多相关的问题,我得到了一些线索,但仍然感到困惑,因为我下载后得到了 0 字节的文件。任何人都可以帮助修改下面的代码,谢谢你的时间。

   def download_file(request, filepath, filename):
        path_to_file = filepath+"\\"+filename
        serverfile = file(path_to_file, 'rb')
        response = HttpResponse(mimetype='application/force-download')
        response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
        response['Content-Length'] = serverfile.tell()
    return response
4

1 回答 1

1

.tell()给出文件中的当前位置. 由于您尚未阅读任何文件,因此您当前的位置将位于位置 0。

您可以使用os.stat(path_to_file).st_size以字节为单位给出文件大小。请注意,您还应该使用os.path.join(filepath, filename)来获取文件的完整(独立于操作系统)路径,而不是手动连接。

于 2013-01-28T10:51:24.987 回答