JS 獲取上(shàng)傳文件大小的方法
我(wǒ)們有時候在上傳文件前要判斷文(wén)件的大小,通(tōng)常有以下兩種方式:
<!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="ynaad.com提示:點擊查看"
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>
但是以上代碼有一個問題,就(jiù)是在給image.dynsrc賦值的時(shí)候,要有文件的操作(zuò)權限,換句話(huà)說,IE7之後的(de)版本為了提高安全性不允許瀏覽器對文件進(jìn)行(háng)操作(zuò),故以上(shàng)代碼不實用。
以下代碼通過調用ActiveX來進行文件的讀(dú)取,需要啟用ActiveX的部分(fèn)功能。
<!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>
關鍵詞:JS
閱讀本文後您有什麽(me)感想? 已有 人給出評價!
- 0
- 10
- 74
- 4
- 3
- 1