0

我有一个名为 FileReader JS 的文件,filesize.js其中包含getsize()在发布表单之前检查图像文件大小以进行客户端验证的函数。

<script type="text/javascript" src="js/filesize.js"></script>

文件大小.js:

function getsize(){
var oFile = document.getElementById("file").files[0]; // input box with type file;
var reader = new FileReader();
reader.onload = function (e) {
        console.log(e.total); // file size 
};
reader.readAsDataURL(oFile );
fileSize = oFile.size;
}


该函数在选择要上传的文件但在使用onchange输入标签发布表单之前运行。

<input type='file' name='file' id='file' onchange='getsize();' />

这将获取当前选择的上传文件的大小,因为一次只能上传一张图像。我遇到的问题getsize()是异步的,无论我尝试了什么,我都无法将变量传递fileSize给一个单独的同步验证函数validate(),该函数需要在发布表单之前单独运行onsubmit

<form name='add' action='process.php' method='post' enctype='multipart/form-data' onsubmit='return validate()'>

validate()在允许表单发布和上传图像之前检查几个不同的因素。其中之一是验证当前所选图像的文件大小是否在 512KB 以下。任何帮助将不胜感激谢谢。

4

1 回答 1

0

您需要使用回调函数。基本上,回调函数是在一段代码完成运行时运行的函数。在您的情况下,您将通过回调函数提交表单。看看这篇文章

于 2013-06-02T20:09:19.990 回答