web-dev-qa-db-ja.com

IEでjavascriptを使用してクライアント側からファイルサイズを取得するにはどうすればよいですか?

私は次の方法を使用しました

[〜#〜] html [〜#〜]

<input type="file" id="loadfile" />

JavaScript

var file = document.getElementById('loadfile').files[0];
alert( "name " +  file.name + "Size " +  file.size );

IE :(どうやって入るかIE?

9
raki

IEは私が恐れているファイルサイズ情報を提供しません。 IE10でHTML5ファイルAPIを使用できる場合があります。こちらをご覧ください:-

Internet Explorerにアップロードする前にファイルサイズを確認するJavascript

5
Lloyd

あなたはactiveXを使用してこのようにそれを行うことができます

function getSize()
{
 var myFSO = new ActiveXObject("Scripting.FileSystemObject");
 var filepath = document.upload.file.value;
 var thefile = myFSO.getFile(filepath);
 var size = thefile.size;
 alert(size + " bytes");
}

詳細については、こちらをご覧ください。

クライアント側でHTMLとJavascriptを使用してファイルサイズを検証する方法

1
rahul
document.getElementById('loadfile').addEventListener('change', checkFile, false);

function checkFile(e) {
    var file_list = e.target.files;
    for (var i = 0, file; file = file_list[i]; i++) {
        var fileExtension = file.name.split('.')[file.name.split('.').length - 1].toLowerCase();
        var iConvert = (file.size / 1024).toFixed(2);

        txt = "File type : " +fileExtension + "\n";
        if(file.size > (1024 * 1024)){
            txt += "Size: " + (file.size / (1024*1024)).toFixed(2) + " MB \n";
        } else {
        txt += "Size: " + (file.size / 1024).toFixed(2) + " KB \n";
        }
        alert(txt);
    }
}

fiddle を参照してください

1
Harish Singh

バージョン9までのIEは、ファイルサイズを取得するために必要な file API をサポートしていません。 IE10はファイルサイズをサポートしていません。

0
Beat Richartz

IEはファイルAPIをサポートしていません

ソース: https://github.com/blueimp/jQuery-File-Upload/issues/147

このアクションを実行するには、ActiveXコントロールを使用する必要があります

function getSize()
{
 var myFSO = new ActiveXObject("Scripting.FileSystemObject");
 var filepath = document.upload.file.value;
 var thefile = myFSO.getFile(filepath);
 var size = thefile.size;
 alert(size + " bytes");
}

ソース: http://www.sencha.com/forum/showthread.php?196859-File-Upload-Field-IE-Safari-Opera-fileInput-error.&s=b124834725ae363759158268d91ac32c

0
Mahmoud Farahat