実際にサーバーにアップロードする前に、Javascriptを使用してファイルのサイズ(クライアント側)を確認することはできますか?
このアプリケーションはEXTJSおよびJavaで構築されており、Windows XPマシンでのInternetExplorer7による使用に制限されています。activeXの使用は許可されていません。
ワークフローは次のとおりです。ユーザーがアップロードするファイルを選択します。検証がすぐに開始され、ファイルタイプとファイルサイズがチェックされます。ファイルサイズが制限を超えると、GUIはエラーでプロンプトを表示します。ファイルサイズが制限内の場合、完全なファイルパスがサーバー側(Javaサーブレット)に渡されてアップロードされます。
ファイルサイズのチェックとフルファイルパスの読み取りはjavascriptで実行できますか?
ActiveXオブジェクトで可能です。
<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>
現在、アップロードされたファイルのサイズをWebブラウザから移植可能に確認する方法はありません。 HTML5ファイルAPI はこれを可能にしますが、MSIE7では利用できません-現在MSIE10に向けて順調に進んでいます。
アップロードされたファイルのフルパスを意図的に特定する方法はありません。エンドユーザーの名前などの機密情報が含まれている可能性があるためです。
できない理由は、ブラウザとjavascriptがクライアントのファイルシステムにアクセスできれば悪いからです。
これは積極的に拒否され、攻撃と見なすことができます。