Django-storage - 如何在上传前检查文件大小?

Posted

技术标签:

【中文标题】Django-storage - 如何在上传前检查文件大小?【英文标题】:Django-storage - How to check file size prior to upload? 【发布时间】:2014-02-07 15:45:22 【问题描述】:

存储和 Django 1.6:

我想限制保存到s3 的文件大小。这样做的适当方法是什么? 我应该只在表单中进行自定义字段验证,还是在使用 Django-Storage 时有更好的方法来做到这一点?

【问题讨论】:

阅读@NorbertSebők 的回答后,我还添加了 javascript 标记。 【参考方案1】:

验证需要将文件上传到服务器。 suggested way 是在您的 Web 服务器配置中设置限制。更好的解决方案是to check the file size in JS上传之前:

// fileInput is a htmlInputElement: 
<input type="file" multiple id="myfileinput">
var fileInput = document.getElementById("myfileinput");

// files is a FileList object (simliar to NodeList)
var files = fileInput.files;

for (var i = 0; i < files.length; i++) 
  alert(files[i].name + " has a size of " + files[i].size + " Bytes");

【讨论】:

如果我使用 django-storages 保存到 s3,我假设 Web 服务器配置不会做任何正确的事情? @w,Web 服务器将返回错误响应 (413) 而不是为请求提供服务。 Django 代码甚至不会注意到请求失败。所以设置 LimitRequestBody 是一个提高安全性的好主意,但是 JS 检查是一个对用户更友好的解决方案。

以上是关于Django-storage - 如何在上传前检查文件大小?的主要内容,如果未能解决你的问题,请参考以下文章

Django:使用 django-storage 从 S3 创建 zipfile

如何防止在asp.net mvc中上传exe文件

上传文件前验证文件扩展名

plupload:上传前验证图像尺寸?

java上传视频除了检查后缀,怎么判断文件格式,前8位来判断.flv格式有的00000018有的464C5601可靠么?求解

如何在上传前调整图像大小并进行预览