Django,将文件附件作为HttpResponse返回,我可以获得文件大小吗?
Posted
技术标签:
【中文标题】Django,将文件附件作为HttpResponse返回,我可以获得文件大小吗?【英文标题】:Django, returning file attachment as HttpResponse, can I get file size? 【发布时间】:2013-05-29 21:27:28 【问题描述】:我正在从网页返回一个 Excel .XLS 文件,例如:
xls_response = HttpResponse(mimetype='application/vnd.ms-excel')
xls_response['Content-Disposition'] = 'attachment; filename=funfile.xls'
.
.
<code to generate the file - already accomplished>
.
.
return xls_response
一切都很好,但我想在发送之前查看文件大小,以便显示上次下载时的文件大小。我已经有一个模型可以存储它,但我需要弄清楚如何在将文件返回给客户端之前从xls_response object
获取文件大小。除了二进制数据的len()
之外,有没有办法做到这一点?
【问题讨论】:
【参考方案1】:见下面的代码,记住 django 只是 python
from sys
sys.getsizeof(obj[, default]) #returns size of a python object.
http://docs.python.org/2/library/sys.html#sys.getsizeof
【讨论】:
谢谢,詹姆斯。你为我指明了正确的方向。由于某种原因,我不得不保存sys.getsizeof(xls_response.content)
,对象的大小不是其内容的完整大小,但HttpResonse.content
是。干杯!以上是关于Django,将文件附件作为HttpResponse返回,我可以获得文件大小吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Django 在 HTML 电子邮件模板中将图像作为内联附件发送