こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ファイルの一部のみをアップロードできますか?

クライアントのファイルのヘッダー部分を読み込んで、その内容を表示するプログラムを作成しようとしています。

仕組みとしては、フォームからクライアントにファイルをアップロードしてもらい、サーバー側で処理をしてその結果をブラウザに表示するようにしているのですが、必要な情報はファイルの先頭にある数十KBの部分のみですので、ファイル全体(数十~数百MB)をアップロードするのは非効率すぎます。

そこで、これを回避するために、ファイルの先頭部分のみをアップロードさせたいと思っているのですが、そのようなことは可能でしょうか?可能でしたらその方法を教えてください。
また、アップロードする以外にクライアント側のファイルを参照する方法をご存知でしたら合わせてご教授ください。

投稿日時 - 2006-12-24 16:55:36

QNo.2622836

すぐに回答ほしいです

質問者が選んだベストアンサー

がると申します。
詳しくはRFCあたりをご覧頂くとして。
仕様上「不可能」です。

ActiveXなどをつかって擬似的に…という方向性が0ではありませんが、基本的に無理だと思って間違いないです。

投稿日時 - 2006-12-25 01:05:38

お礼

はっきり答えていただいてありがとうございます。無理ということがわかりましたのでこの手法はあきらめて、別の手段で対応したいと思います。ご回答ありがとうございました。

投稿日時 - 2007-01-04 12:03:06

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

まぁどうしてもと言うのであれば、IE限定で、クライアントの
セキュリティーがあまり強固でないなら、VBSで処理できますよ。
file要素でやらずにpostでおくることにするとよいでしょう

投稿日時 - 2006-12-25 22:09:14

お礼

貴重な情報ありがとうございます。ただし、IE限定というわけにはいきませんので、今回は見送ります。ご回答ありがとうございました。

投稿日時 - 2007-01-04 12:04:15

ANo.1

事前にクライアント側で分割してください。
以上では元も子もないので・・・

php.iniでpost_max_sizeを小さな値にすることでできないでしょうか?
おそらく制限値の時点以降を打ち捨てられると思います。
(パケットはちゃんと最後まで飛ばされそうですが・・・)

もうひとつはもやはPHPでどうのこうののレベルではないですが
Apacheで特定の条件に達したら接続を打ち切れるようにすれば
おそらく必要な部分だけのパケットを受け取る事ができると思います。
その代わりサーバが応答しないとブラウザに怒られそうですけれど・・・

投稿日時 - 2006-12-24 22:44:16

お礼

やはりできなさそうですね。自分でもpost_max_sizeなどのパラメータを色々いじってみましたがダメでした。ご回答ありがとうございます。

投稿日時 - 2007-01-04 12:00:54

あなたにオススメの質問