Javaにおけるファイルアップロード機能の実装

Java ではファイルのアップロード機能を以下のように実現できます。

  1. 私はこの映画は好きじゃなかったです。
  2. 元素
  3. ファイルのアップロードリクエストを処理するServletまたはControllerクラスをJavaサーバサイドに作成する。
  4. getPart() メソッドを使用してサーブレットまたはコントローラクラスで HttpServletRequest オブジェクトからファイルのアップロード部分を取得します。
  5. PartオブジェクトのgetOriginalFilename()メソッドを使って、アップロードファイルのファイル名を取得します。
  6. Partオブジェクトのwrite()メソッドを使って、アップロードファイルをサーバの指定された場所に保存します。
  7. ファイルアップロード完了後にロジックを処理する。たとえば、アップロードに成功したというメッセージをユーザーに返す。

簡単な例を以下に示します。

@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取上传的文件
        Part filePart = request.getPart("file");
        String fileName = filePart.getSubmittedFileName();
        // 指定上传文件保存的路径
        String savePath = "C:/uploads/" + fileName;
        
        // 将上传文件保存到服务器指定路径
        try (InputStream inputStream = filePart.getInputStream();
             FileOutputStream outputStream = new FileOutputStream(savePath)) {
            byte[] buffer = new byte[4096];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }
        } catch (IOException ex) {
            // 处理上传文件保存失败的异常
        }
        
        // 处理文件上传完成后的逻辑
        response.getWriter().println("文件上传成功!");
    }
}

上記の例では、`@WebServlet` アノテーションを使用してサーブレットを `/upload` パスへマッピングし、ユーザーがファイルを含むフォームを送信すると、リクエストはこのサーブレットへ転送されて処理されます。`doPost()` メソッド内で、最初に `HttpServletRequest` の `getPart()` メソッドを使用してアップロードされたファイル部分を取得し、次に `Part` オブジェクトの `getSubmittedFileName()` メソッドを使用してアップロードされたファイルのファイル名を取得します。続いて、アップロードされたファイルをサーバーの指定されたパスへ保存し、最後にアップロード成功メッセージをユーザーへ返します。

bannerAds