如何在客户端使用HTML和Javascript验证文件大小

New*_*Dev 9 html javascript

如何使用JavaScript验证客户端的文件大小?我type=file用来选择文件

Bre*_*ton 13

从编辑开始更新2013年,所有主流浏览器都支持File API,从版本10开始支持IE

http://caniuse.com/#search=file%20api

如果你仍然需要支持IE9及更低版本,你可能仍然希望使用SWFUpload,尽管此时它应该更多的是后备,因为html5文件api在SWFUpload无法访问的移动平台上提供支持.html5文件api基于firefox的文件api,如下所示.

另请参阅此重复问题 客户端使用HTML5检查文件大小?

更新: Firefox已将其API更改为此https://developer.mozilla.org/en/DOM/FileReader

你可以在firefox中这样做

HTML:

<form action="" method="get" accept-charset="utf-8">
<input type="file" name="file" value="" id="file">
<p><input type="submit" value="Continue &rarr;"></p>
</form>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

var filesize = document.forms[0].file.files[0].fileSize
Run Code Online (Sandbox Code Playgroud)

如果在IE中有办法做到这一点,我不知道.它可能涉及activeX或其他一些垃圾.

编辑:我在这里发现了这个,如何在IE浏览器中这样做

<head>
<script>
function getSize()
{
 var myFSO = new ActiveXObject("Scripting.FileSystemObject");
 var filepath = document.upload.file.value;
 var thefile = myFSO.getFile(filepath);
 var size = thefile.size;
 alert(size + " bytes");
}
</script>
</head>
<body>
<form name="upload">
<input type="file" name="file">
<input type="button" value="Size?" onClick="getSize();">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • Javascript不能替代检查服务器上的文件大小.如果目标只是节省一些资源,那么我认为这个目标是可能的. (4认同)
  • 这个答案需要很多注意事项才能有用.1)IE需要将站点插入"可信站点"列表,以便不会出错.如果你要从其他页面复制/粘贴东西,先做一点研究2)这只是在FF3中引入3)并且`fileSize`已被弃用(https://developer.mozilla.org/en/DOM /文件) (4认同)

Sun*_*ers 5

也许您可以使用SWFUpload,这是一个小型Flash应用程序,可以为您处理上载的客户端.从他们的功能列表:

  • 通过对话框中的ctrl/shift-selection一次上传多个文件
  • 所有事件的Javascript回调
  • 上传开始前获取文件信息
  • 使用XHTML和css样式上传元素
  • 使用HTML上载文件时显示信息
  • 无需重新加载页面
  • 适用于具有Flash支持的所有平台/浏览器.
  • 如果Flash或javascript不可用,则优雅地降级为普通的HTML上传表单
  • 上传开始前控制文件大小
  • 仅在对话框中显示所选的文件类型
  • 队列上传,在开始上传之前删除/添加文件