アップロードする前にファイルのサイズを確認できる他の方法はありますか? 要件は、ファイルが制限を超えた場合、フォームを送信してはならないということです。そうでない場合は、フォームを使用して通常のアップロードを行う必要があり、Flash を使用してファイルをサーバーに正確にアップロードする必要はありません。
4 に答える
アップロードする前にファイルのサイズを確認できる他の方法はありますか?
JavaScript ではありません。ファイル サイズはDOM ではありません。
SWFUpload をインスタンス化するとき、渡す必要がある 2 つのパラメータがあります: file_size_limit と file_queue_error_handler:
new SWFUpload({
file_size_limit: "10 MB",
file_queue_error_handler: queueErrorHandler,
[...]
})
その後:
function queueErrorHandler(file, errorCode) {
if (errorCode == SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT) {
alert("File exceeds the 10MB limit!");
}
}
これにより、アップロードを開始する前にファイルサイズが制限内にあるかどうかがチェックされます
W3C FileAPI (少なくとも Firefox 3.6 で実装) を使えばできます。
詳細はこちらのリンクをご覧ください
http://hacks.mozilla.org/2009/12/w3c-fileapi-in-firefox-3-6/
乾杯
SWFUpload コントロールを使用してファイル サイズを確認することができます。SWFUpload コントロールを Web フォーム タグの外に置くだけです。SWFUpload ボタンをクリックし、アップロード ファイルを指定するようユーザーに伝えます。JavaScript を使用してファイル サイズを決定し、検証関数を設定するなど、必要に応じてこの情報を利用します。次に、メイン フォームでユーザーにアップロード ファイルを再度指定するように求める必要があります。実際にファイルをアップロードするのはこのフィールドです。フォームが送信されると、SWFUpload コントロールはメイン フォームの一部ではないため、完全に無視されます。