在我的应用程序中,我需要在客户端端计算文件的大小(在上传到服务器之前)。
我想限制上传的文件,如果它不符合我的要求,例如文件尺寸,文件类型 ..
是否可以使用JavaScript在客户端实现此目的?
答案 0 :(得分:4)
在绝大多数当前浏览器中,使用纯JS 完成此操作无法。一些较新的HTML5文件工具可能允许这样做,但它们的支持是有限的。
您需要使用基于Flash的上传器工具在上传之前获取此数据。查看YUI Uploader即可开始使用。
我建议你这样实现:
答案 1 :(得分:2)
在实际使用POST请求向服务器提交文件之前,这实际上是不可能的(可能是在IE中使用了一些Java + ActiveX漏洞)。
答案 2 :(得分:1)
在支持HTML5 File API的浏览器中,您现在可以。
这是true for updated browsers,毫不奇怪IE excluded。
var files = $(this).attr('files');
var MAXFILESIZE = 500000; // bytes
if (files) {
// <input type="file" multiple>
for (var i = 0; i < files.length; i++) {
// We can also validate files[i].type or files[i].name vs an expected file type
if (files[i].size > MAXFILESIZE) {
alert('File "'+files[i].name+'" is too big.');
}
}
}
未来说“你好”! :)