在通过浏览器上传文件之前,有没有办法获得文件的大小?
我找到了Check file size before uploading file,但该脚本不适用于Internet Explorer 6,7或8.我没有使用IE 9进行测试。我正在寻找一个适用于任何浏览器的脚本。
答案 0 :(得分:1)
如果您愿意引入对Flash的依赖,那么您可以使用它来获取文件大小(并处理上传)。
Flash支持通过FileReference
class进行文件选择,这样您就可以访问一些元数据,包括文件大小。
在ExternalInterface
class的帮助下,您可以调用JavaScript函数并为其提供此信息。
如果文件大小合适,您可以从Flash上传文件而不是使用通常的输入元素。
查看YUI的uploader,了解一个非常易于使用且记录完备的免费组件,它可以为您处理所有这些(您只需要编写一些JavaScript,并且可以设置预先构建的Flash样式你想要的组件。)
答案 1 :(得分:0)
我将此答案添加到每个人之后可以使用:
function findSizeandalert() {
var fileInput = document.getElementById("fileupld");
try{
var fsize = fileInput.files[0].size; // Size returned in bytes.
var fsizekb = fsize/1024; // Size Convert to KBytes.
if(fsizekb>100){
alert("Your File size is more than specific size; Size of your file"+fsizekb.toFixed(2)+" KB");
return false;
}
}catch(e){
var objFSO = new ActiveXObject("Scripting.FileSystemObject");
var e = objFSO.getFile( fileInput.value);
var fileSize = e.size;
var fsizekb = filesize/1024;
if(fsizekb>100){
alert("Your File size is more than specific size; Size of your file.(CC)"+fsizekb.toFixed(2)+" KB");
return false;
}
}
return true;
}
然后在onsubmit事件的形式中:
<form method="post" enctype="multipart/form-data" name="frm_upload" onSubmit="return findSizeandalert()">
<input id="fileupld" type="file" name="fupl" accept="image/x-png,image/jpeg" >