And*_*y E 39
如果它不是由具有完全访问权限的JavaScript驱动的本地应用程序,则无法从路径名称获取任何文件的大小.出于安全原因,运行javascript的网页无权访问本地文件系统.
如果要显示进度条,可以使用优雅的降级文件上传器,如SWFUpload.HTML5也有File API,但目前还没有广泛支持.如果用户选择input[type=file]元素的文件,您可以从files集合中获取有关该文件的详细信息:
alert(myInp.files[0].size);
Run Code Online (Sandbox Code Playgroud)
Vee*_*eer 11
function findSize() {
var fileInput = document.getElementById("fUpload");
try{
alert(fileInput.files[0].size); // Size returned in bytes.
}catch(e){
var objFSO = new ActiveXObject("Scripting.FileSystemObject");
var e = objFSO.getFile( fileInput.value);
var fileSize = e.size;
alert(fileSize);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以尝试此方法来获取以 kB 和 MB 为单位的文件大小,直到以字节为单位的文件大小达到 7 位数字为止,结果将以 kbs 为单位。7 似乎是这里的神奇数字。之后,如果字节有 7 到 10 位数字,我们必须将其除以 10**3(n),其中 n 是附加操作。每添加 3 位数字就会重复此模式。
let fileSize = myInp.files[0].size.toString();
if(fileSize.length < 7) return `${Math.round(+fileSize/1024).toFixed(2)}kb`
return `${(Math.round(+fileSize/1024)/1000).toFixed(2)}MB`
Run Code Online (Sandbox Code Playgroud)