JS 獲取上傳文件大小的方法
我們有時(shí)候在上傳文件前要判斷文件的大小,通常有以下兩種方式:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> 
<html> 
<body> 
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this)"> 
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value)"> 
</body> 
<script type="text/javascript"> 
function getFileSize(filePath) 
{ 
var image=new Image(); 
image.dynsrc=filePath; title="downcc.com提示:點(diǎn)擊查看" 
alert(image.fileSize); 
} 
function getFileSize(fileObj) 
{ 
var image=new Image(); 
image.dynsrc=fileObj.value; 
var size = image.fileSize || fileObj.files[0].fileSize; 
if(size > 100000){ 
alert(size); 
} 
} 
</script> 
</html>
但是以上代碼有一個(gè)問(wèn)題,就是在給image.dynsrc賦值的時(shí)候,要有文件的操作權(quán)限,換句話說(shuō),IE7之后的版本為了提高安全性不允許瀏覽器對(duì)文件進(jìn)行操作,故以上代碼不實(shí)用。 
以下代碼通過(guò)調(diào)用ActiveX來(lái)進(jìn)行文件的讀取,需要啟用ActiveX的部分功能。
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> 
<html> 
<script type="text/javascript"> 
function getFileSize(fileObj) { 
if (document.all) { 
window.oldOnError = window.onerror; 
window.onerror = function(err) { 
if (err.indexOf('utomation') != -1) { 
alert('No access to the file permissions.'); 
return true; 
} 
else 
return false; 
}; 
var fso = new ActiveXObject('Scripting.FileSystemObject'); 
var file = fso.GetFile(fileName); 
window.onerror = window.oldOnError; 
return file.Size; 
} 
} 
</script> 
<body> 
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this)"> 
</body> 
</html>
關(guān)鍵詞:JS
閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!
- 0      
- 10      
- 74      
- 4      
- 3      
- 1      
