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

标签 javascript jquery image jquery-plugins upload

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

我想知道是否有限制我可以设置多少字节可以通过 AJAX 流传递到服务器?这可以让我检查文件大小并在文件太大时返回错误。

通过在客户端执行此操作,它可以阻止那些使用宾得拍摄 10MB 照片并尝试上传照片的新手。

最佳答案

这是我在一个非常相似的问题中的回答的副本:How to check file input size with jQuery?


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

对于这个 HTML:

<input type="file" id="myFile" />

尝试以下操作:

//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),我添加了 here有关您应该了解的其他文件信息的更多详细信息和链接:http://felipe.sabino.me/javascript/2012/01/30/javascipt-checking-the-file-size/


旧浏览器支持

请注意,旧浏览器会为之前的 this.files 调用返回一个 null 值,因此访问 this.files[0]将引发异常,您应该 check for File API support使用前

关于javascript - 使用 jQuery,在上传前限制文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/307679/

相关文章:

javascript - 滚动移动到特定部分

无需插件的 Jquery 交叉淡入淡出

javascript - 如何从方括号内的对象解析字符串

javascript - Jquery 错误 - 未捕获错误 : Syntax error, 无法识别的表达式

javascript - jQuery $.ajax 调用——奇怪的返回函数问题

jquery - 图像延迟加载(jQuery)后如何更改CSS?

c++ - 为什么 QWebView 在通过 setHtml 加载时不显示任何图像?

javascript - 不允许元素在 y 轴上溢出

javascript - 如何在全屏视频顶部制作带有关闭按钮的弹出窗口

javascript - SmoothDivScroll;左 HotSpot 太快,Right HotSpot 什么都不做