一般的な開発方法の場合は、サーバーへ通信後、サーバー側でファイルサイズを見て判別するかと思いますが、100Mバイトなどの重いファイルの場合、ファイル送信後にエラーとなり、非常に時間が掛かるため、OS側で通信前に判断できればと思います。
具体的には、フォームで「参照」というボタンを押し、ファイルを選択した時点でファイルサイズを調べて、一定以上のサイズならエラーを出したいのですが、VBscriptを使う方法以外でオススメの方法はありますか?
Flashならば、FileRefference Classを使用するとアップロード前にサイズを確認できますよ。
MACでも動きますし、VBSよりはよいかと。
http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/commo...
「VBSを使わない」という条件であれば、やはりJavascript等も不可になるのでしょうか?
開発環境についての記述が見られないので、今回PHPについてお話しますが、HTMLフォームでMAX_FILE_SIZEを指定する事で、そのサイズを超えたファイルが送られた際に例外を発生させる事は出来ます。
この方法ですと事前にOS側で判断するという条件は満たしませんが、ファイル送信後に例外という事にはなりません。
VBSの話が出る処を見るとASPかな?とも思ったのですが、もうASPは使われていとも思うので…。
VBSはmacでは動作しないなど、OS依存が高いとお聞きしているため、対象外としております。jsで対応できるなら、jsのほうがありがたいです。
なお、MAX_FILE_SIZEですが、実際に試してはいたのですが、例外を発生させることはできましたが、実際にサーバー送信後に例外発生をさせるようでして、PHPマニュアルの説明と挙動が違っているので、戸惑っております。
1の回答と被りますが、FlashのFileRefference Classでファイルのサイズを取得して、JavascriptとFlashが相互に情報のやりとりできるexternalinterfaceを使用することで、javascriptで例外が出せます。
FlashやActionScriptはやったことがないので、他の方法があれば、そちらも教えてくださいますと嬉しいです
例えば、Javaになりますが、ファイルアップロード用のAppletを開発すれば、ブラウザ側でファイルサイズのチェックが可能ですね。ただ、制限がかかりますが。
方法はいろいろあると思いますが、希望する開発言語、使用環境(社内・社外など)を公開できる範囲で書いてみてはいかがでしょうか。
ありがとうございます。FlashやActionScriptはやったことがないので、他の方法があれば、そちらも教えてくださいますと嬉しいです