6.2.5ファイルのアップロード
ダウンロードができるなら、ファイルのアップロードもできるんじゃないか――そう思った人も多いことでしょう。getOutputStreamと同様のメソッドがHttpServletには用意されており、それを使って入力ストリームからファイルを受け取る。こうしたやり方でファイルを受け取ることは可能です。ただし、ファイルをフォームなどから送信する場合、「マルチパート」と呼ばれる複数のパートからなるデータとして送られるため、送信されたデータを解析して必要な部分を取り出すという面倒な処理が必要となってしまいます。
こうした問題を解決するものとして、Servlet 3.0から新たに「ファイルのアップロードを扱う専用クラス」が用意されることになりました。「Part」というもので、これは文字通り、マルチパートで送られるフォームの各部分のデータをここに取り出して操作するためのものです。これを利用することで、非常に簡単にファイルのアップロード処理が実装できます。
ただし! 単純にアップロードされたファイルを保存するというだけならシンプルに実装できますが、アップロードしたファイル名を使ってサーバー側に保存するような場合、送られたデータのヘッダー情報からファイル名の部分を取り出すなどの処理が必要となります。
このあたりはMIMEのデータ構造についての知識がないと難しいのですが、とりあえず
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録