当前位置:  开发笔记 > 编程语言 > 正文

使用jQuery,在上传之前限制文件大小

如何解决《使用jQuery,在上传之前限制文件大小》经验,为你挑选了3个好方法。

在PHP上,他们有一种方法可以在上传后限制文件大小,但不能在上传之前.我使用Malsup jQuery Form Plugin进行表单发布,它支持图像文件发布.

我想知道是否有一个限制,我可以设置多少字节可以通过AJAX流直到服务器?这可以允许我检查文件大小并在文件太大时返回错误.

通过在客户端执行此操作,它阻止那些从他们的Pentax拍摄10MB照片并尝试上传的新手.



1> Felipe Sabin..:

这是我在一个非常相似的问题中回答的副本:如何使用jQuery检查文件输入大小?


您实际上无权访问文件系统(例如读取和写入本地文件).但是,由于HTML5 File API规范,您可以访问一些文件属性,文件大小就是其中之一.

对于这个HTML:


尝试以下方法:

//binds to onchange event of your input field
$('#myFile').bind('change', function() {
  //this.files[0].size gets the size of your file.
  alert(this.files[0].size);
});

由于它是HTML5规范的一部分,它只适用于现代浏览器(IE需要v10),我在这里添加了更多关于您应该知道的其他文件信息的详细信息和链接:http://felipe.sabino.me/javascript/2012/01/30/javascipt的检查的所述文件尺寸/


旧浏览器支持

请注意,旧浏览器将返回null上一次this.files调用的值,因此访问this.files[0]将引发异常,您应该在使用之前检查File API支持


@ShawnEary这不是一个技巧,它只是HTML5文件API实现,IE10确实支持http://caniuse.com/#feat=fileapi :)

2> Todd Smith..:

除非你使用flash,activex或java上传器,否则我认为这是不可能的.

出于安全原因,在上载之前或期间,不允许ajax/javascript访问文件流或文件属性.


当你写这个答案时,这确实是正确的,但我们现在在HTML5新规范中有一个文件API :) http://stackoverflow.com/a/9106313/429521

3> 小智..:

我试过这种方式,我在IE*中获得结果,而Mozilla 3.6.16,没有检查旧版本.


另外添加Jquery库.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有