Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

Spring Bootでファイルをアップロードする

$
0
0

Spring BootでファイルアップロードをするにはMultipartFileインターフェースを受け取るようにするといいみたいです。

こんなクラスを定義して

package okazuki.fileupload.simple.controllers;

import org.springframework.web.multipart.MultipartFile;

publicclass FileUploadForm {
    private MultipartFile fileData;

    public MultipartFile getFileData() {
        return fileData;
    }

    publicvoid setFileData(MultipartFile fileData) {
        this.fileData = fileData;
    }

}

こんなHTMLでもって

<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head><metacharset="UTF-8"/><title>Insert title here</title></head><body><formmethod="post"enctype="multipart/form-data" th:action="@{/upload}"><inputname="fileData"type="file" /><inputtype="submit" /></form></body></html>

こんなコントローラーで受けれます。

package okazuki.fileupload.simple.controllers;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controllerpublicclass HomeController {
    privatestaticfinal Logger log = Logger.getLogger(HomeController.class); 
    
    @RequestMappingpublic String index() {
        return"index";
    }
    
    @RequestMapping(value = "/upload", method = RequestMethod.POST)
    public String upload(FileUploadForm fileUploadForm) {
        log.info(fileUploadForm.getFileData().getName() + ", " + fileUploadForm.getFileData().getSize());
        return"index";
    }
}

MultipartFileインターフェースは、getBytesメソッドやgetInputStreamメソッドなどももってるので、お好みの方法でファイルのデータを扱うことができます。

リクエストのサイズとか

でかいファイルをアップできるようにするにはapplication.propertiesで以下の2つのパラメータを調整する必要があるみたいです。

multipart.max-file-size=1MB
multipart.max-request-size=1MB

Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>