在使用JavaScript上传文件之前,有什么方法可以检查文件大小?


当前回答

适用于动态和静态文件元素

仅Javascript解决方案

函数validateSize(input) { const fileSize = input.files[0]。Size / 1024 / 1024;// in MiB if (fileSize > 2) { alert('文件大小超过2个MiB'); / / $(文件).val (");//使用Jquery清除 }其他{ //继续 } } <input onchange="validateSize(this)" type="file">

其他回答

这很简单。

const oFile = document.getElementById("fileUpload").files[0]; // <input type="file" id="fileUpload" accept=".jpg,.png,.gif,.jpeg"/>

if (oFile.size > 2097152) // 2 MiB for bytes.
{
  alert("File size must under 2MiB!");
  return;
}

如果你将Ie的“文档模式”设置为“标准”,你可以使用简单的javascript“大小”方法来获取上传文件的大小。

将Ie的文档模式设置为标准模式:

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

然后,使用'size' javascript方法获取上传文件的大小:

<script type="text/javascript">
    var uploadedFile = document.getElementById('imageUpload');
    var fileSize = uploadedFile.files[0].size;
    alert(fileSize); 
</script>

这对我很管用。

适用于动态和静态文件元素

仅Javascript解决方案

函数validateSize(input) { const fileSize = input.files[0]。Size / 1024 / 1024;// in MiB if (fileSize > 2) { alert('文件大小超过2个MiB'); / / $(文件).val (");//使用Jquery清除 }其他{ //继续 } } <input onchange="validateSize(this)" type="file">

你可以试试这个fineuploader

它在IE6(及以上版本)、Chrome或Firefox下运行良好

否是,在较新的浏览器中使用File API。详见TJ的回答。

如果你也需要支持旧的浏览器,你将不得不使用基于flash的上传器,如SWFUpload或Uploadify来做到这一点。

SWFUpload Features Demo展示了file_size_limit设置是如何工作的。

注意,这(显然)需要Flash,加上它的工作方式与正常的上传表单有点不同。