1

重複の可能性:
javascriptでactivexを使用せずにクライアント側からファイルサイズを取得する方法は?

スクリプトで最大サイズ 1 GB の画像アップロードを使用しており、javascript で画像ファイルのサイズを取得する必要があるため、次のスクリプトを使用しました。

var file = document.getElementById('image').files[0];

if(file.size > 1048576){
    alert('image size is too big to upload');
}

このスクリプトは、IE8、9 を除くすべてのブラウザーで正常に動作します。IE で動作する解決策を教えてください。

4

4 に答える 4

0

以下のコードを試してください

var img = new Image();
img.src = sYourFilePath;
var iSize = img.fileSize;

続きを読む

javascriptでactivexを使用せずにクライアント側からファイルサイズを取得する方法は?

https://gist.github.com/3347948

于 2013-01-31T06:06:38.147 に答える
0

参照用のリンクが見つからないようですが、ie8 と ie8 は html5 ファイル API をサポートしていないため、そこからファイル サイズを取得できません。別の方法は、サーバー側でこの処理を行い、サイズが制限を超えた場合にすぐに失敗することです。

于 2013-01-31T06:09:27.293 に答える
0

要件 クライアント側でファイル/画像サイズを計算するには、ブラウザーが HTML5 File API をサポートしている必要があります

理由/詳細 IE 10.0 では HTML ファイル API が部分的にサポートされていても、IE バージョン 9.0 までは画像/ファイル サイズを取得できません。これを確認してください。

リサーチ

次のコードを使用した IE と Chrome のデバッグ情報を次に示します。

var file = document.getElementById('image').files[0];
console.log(file);

Chrome Chrome webkitRelativePath: "", lastModifiedDate: Wed Feb 08 2012 12:57:57 GMT+0500 (パキスタン標準時), name: "1.jpg", type: "image/jpeg", size: 715285… }

IE 9.0 SCRIPT5007: プロパティ '0' の値を取得できません: オブジェクトが null または未定義です

于 2013-01-31T07:39:18.390 に答える
0

ここからこの例を検討してください

<html>
<head>
<script>
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");
}
</script>
</head>
<body>
<form name="upload">
<input type="file" name="file">
<input type="button" value="Size?" onClick="getSize();">
</form>
</body>
</html>

ただし、IE のセキュリティ設定でActiveXを許可する必要があります。

于 2013-01-31T06:17:56.803 に答える