3

Microsoft Web-Application Developer 試験の勉強中にこの質問に出くわしました。

ユーザーがファイルを Web サーバーにアップロードできるようにする Web ページを実装しています。このページには、送信ボタンのあるフォームが含まれています。アップロードを制限して、1 MB 未満のファイルのみをアップロードできるようにします。

与えられた答えは次のとおりです。

ASP.NET FileUpload コントロールを追加し、サーバー上で実行するように構成します。サーバー側の OnClick ハンドラーをフォームの [送信] ボタンに追加して、ファイル サイズが許可されている場合にのみファイルを保存します。

しかし、これはファイルが既にサーバーにアップロードされているということではないでしょうか? 保存するかどうかを選択しているだけですか?クライアント側で実行できますか?

4

2 に答える 2

2

ファイルのアップロードを行う場合、確認できることがいくつかあります。サーバー側には、実際にアップロードを停止する最大要求サイズもあります。しかし、あなたは正しいです。これらのチェックのいずれかがキャッチされるまでに、アップロードはすでに実行されています。

サポートされているブラウザーで HTML5 File API を使用して、クライアント側でファイルのサイズを取得したり、プレビューを表示したりするなど、ファイルのアップロードをより賢く行うことができるようになりました。例については、こちらを参照してください: Client Checking file size using HTML5?

于 2012-08-08T08:24:36.083 に答える
1

IEを使用:

<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>

Chrome または Firefox を使用: jQuery と HTML5 File API 仕様が実装されている場合、この単純なスニペットを使用して、サイズなどのファイル プロパティにアクセスできます。

//binds to onchange event of your input field
$('#myFile').bind('change', function() {
    alert(this.files[0].size);
});

出典 : このトピックに関する優れた記事: http://www.kavoir.com/2009/01/check-for-file-size-with-javascript-before-uploading.html

于 2012-08-08T08:28:32.067 に答える