カテゴリ: Servlet 更新日: 2025/08/21

JavaのPart.writeメソッドの使い方を完全ガイド!初心者でもわかるファイル保存の基本

Partのwriteメソッド
Partのwriteメソッド

先生と生徒の会話形式で理解しよう

生徒

「JavaのServletで、アップロードされたファイルをサーバーに保存したいんですけど、どうすればいいですか?」

先生

「その場合は、javax.servlet.http.Partインターフェースのwrite()メソッドを使うことで、簡単にファイルをサーバーの指定パスに保存できますよ。」

生徒

「ファイル名とか保存先って自由に決められるんですか?」

先生

「もちろんです。ファイル名はwrite()の引数に指定できます。それでは使い方を見ていきましょう。」

1. Part.writeメソッドとは

1. Part.writeメソッドとは
1. Part.writeメソッドとは

Part.write(String fileName)メソッドは、ServletのPartオブジェクトが持つファイルの中身を、サーバーの指定パスに書き出すメソッドです。通常、ファイルアップロード時に使います。

このメソッドを使えば、ファイル保存処理を自分でOutputStreamなどを使って書かなくても簡単に実現できます。

2. HTMLフォームの準備

2. HTMLフォームの準備
2. HTMLフォームの準備

ファイルをアップロードするには、HTML側にenctype="multipart/form-data"を付ける必要があります:


<form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="uploadFile">
    <button type="submit">アップロード</button>
</form>

3. ServletでPart.writeを使う方法

3. ServletでPart.writeを使う方法
3. ServletでPart.writeを使う方法

JavaのServletでPart.write()メソッドを使う基本的なコードは以下のようになります。


@WebServlet("/upload")
@MultipartConfig(location="/tmp")
public class UploadServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Part filePart = request.getPart("uploadFile");
        String fileName = filePart.getSubmittedFileName();
        filePart.write(fileName);
        response.getWriter().println("ファイル " + fileName + " を保存しました。");
    }
}

この例では、サーバー上の/tmpディレクトリにファイルが保存されます。

4. 保存先の指定と注意点

4. 保存先の指定と注意点
4. 保存先の指定と注意点

@MultipartConfiglocation属性で、保存されるディレクトリを指定できます。
また、ファイル名にはパスを含めることはできません。セキュリティ上の理由で、write()にはファイル名だけを指定する必要があります。

5. 保存後の処理例

5. 保存後の処理例
5. 保存後の処理例

保存したファイルのパスをデータベースに登録したり、ログに記録したりすることもできます。


String savePath = "/tmp/" + fileName;
System.out.println("保存済みファイル: " + savePath);

アップロードファイルの情報(名前、サイズ、種類)なども合わせて記録すると便利です。

サーブレットやJSPの基礎を体系的に理解したい人には、 定番の入門書がこちらです。

スッキリわかるサーブレット&JSP入門をAmazonで見る

※ Amazon広告リンク

カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「StartingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「NotLike」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Thymeleaf
Thymeleafのth:style属性を完全ガイド!初心者でもわかる動的スタイルの適用方法
更新記事
New4
Servlet
JavaのPart.getSubmittedFileNameメソッドの使い方を徹底解説!初心者でもわかるファイル名の取得方法
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.3
Java&Spring記事人気No3
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.4
Java&Spring記事人気No4
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
Spring
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ
No.6
Java&Spring記事人気No6
Java
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.7
Java&Spring記事人気No7
Spring
SpringのModelクラスの使い方を完全ガイド!初心者でも安心
No.8
Java&Spring記事人気No8
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介

💻 作業効率アップに

長時間のコーディングでも疲れにくい♪ 静音ワイヤレスマウス

Logicool Signature M750 を見る

※ Amazon広告リンク