人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ウェブのファイルアップロード機能についての質問です。

一般的な開発方法の場合は、サーバーへ通信後、サーバー側でファイルサイズを見て判別するかと思いますが、100Mバイトなどの重いファイルの場合、ファイル送信後にエラーとなり、非常に時間が掛かるため、OS側で通信前に判断できればと思います。

具体的には、フォームで「参照」というボタンを押し、ファイルを選択した時点でファイルサイズを調べて、一定以上のサイズならエラーを出したいのですが、VBscriptを使う方法以外でオススメの方法はありますか?

●質問者: logihot
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:OS VBScript かるた アップロード ウェブ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● satoshionoda
●23ポイント

Flashならば、FileRefference Classを使用するとアップロード前にサイズを確認できますよ。

MACでも動きますし、VBSよりはよいかと。

http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/commo...

◎質問者からの返答

ありがとうございます。FlashやActionScriptはやったことがないので、他の方法があれば、そちらも教えてくださいますと嬉しいです


2 ● dica33
●23ポイント

「VBSを使わない」という条件であれば、やはりJavascript等も不可になるのでしょうか?

開発環境についての記述が見られないので、今回PHPについてお話しますが、HTMLフォームでMAX_FILE_SIZEを指定する事で、そのサイズを超えたファイルが送られた際に例外を発生させる事は出来ます。

この方法ですと事前にOS側で判断するという条件は満たしませんが、ファイル送信後に例外という事にはなりません。

VBSの話が出る処を見るとASPかな?とも思ったのですが、もうASPは使われていとも思うので…。

◎質問者からの返答

VBSはmacでは動作しないなど、OS依存が高いとお聞きしているため、対象外としております。jsで対応できるなら、jsのほうがありがたいです。

なお、MAX_FILE_SIZEですが、実際に試してはいたのですが、例外を発生させることはできましたが、実際にサーバー送信後に例外発生をさせるようでして、PHPマニュアルの説明と挙動が違っているので、戸惑っております。


3 ● ナス
●22ポイント

1の回答と被りますが、FlashのFileRefference Classでファイルのサイズを取得して、JavascriptとFlashが相互に情報のやりとりできるexternalinterfaceを使用することで、javascriptで例外が出せます。

◎質問者からの返答

FlashやActionScriptはやったことがないので、他の方法があれば、そちらも教えてくださいますと嬉しいです


4 ● u6k
●22ポイント

例えば、Javaになりますが、ファイルアップロード用のAppletを開発すれば、ブラウザ側でファイルサイズのチェックが可能ですね。ただ、制限がかかりますが。

方法はいろいろあると思いますが、希望する開発言語、使用環境(社内・社外など)を公開できる範囲で書いてみてはいかがでしょうか。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ