• ベストアンサー

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

クライアントのファイルのヘッダー部分を読み込んで、その内容を表示するプログラムを作成しようとしています。 仕組みとしては、フォームからクライアントにファイルをアップロードしてもらい、サーバー側で処理をしてその結果をブラウザに表示するようにしているのですが、必要な情報はファイルの先頭にある数十KBの部分のみですので、ファイル全体(数十~数百MB)をアップロードするのは非効率すぎます。 そこで、これを回避するために、ファイルの先頭部分のみをアップロードさせたいと思っているのですが、そのようなことは可能でしょうか?可能でしたらその方法を教えてください。 また、アップロードする以外にクライアント側のファイルを参照する方法をご存知でしたら合わせてご教授ください。

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

  • ベストアンサー
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がると申します。 詳しくはRFCあたりをご覧頂くとして。 仕様上「不可能」です。 ActiveXなどをつかって擬似的に…という方向性が0ではありませんが、基本的に無理だと思って間違いないです。

kumapu2000
質問者

お礼

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

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

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

kumapu2000
質問者

お礼

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

回答No.1

事前にクライアント側で分割してください。 以上では元も子もないので・・・ php.iniでpost_max_sizeを小さな値にすることでできないでしょうか? おそらく制限値の時点以降を打ち捨てられると思います。 (パケットはちゃんと最後まで飛ばされそうですが・・・) もうひとつはもやはPHPでどうのこうののレベルではないですが Apacheで特定の条件に達したら接続を打ち切れるようにすれば おそらく必要な部分だけのパケットを受け取る事ができると思います。 その代わりサーバが応答しないとブラウザに怒られそうですけれど・・・

kumapu2000
質問者

お礼

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

関連するQ&A