07/09/2018, 10:42

Xử lý file upload trong Sprint

Spring là một MVC framework được dùng phổ biến để xây dựng các website dựa trên ngôn ngữ Java. Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách sử dụng thư viện tag library của Spring tạo form upload và đồng thời viết code cho phần controller để xử lý file upload. Tạo Form Upload Trong View ...

Spring là một MVC framework được dùng phổ biến để xây dựng các website dựa trên ngôn ngữ Java. Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách sử dụng thư viện tag library của Spring tạo form upload và đồng thời viết code cho phần controller để xử lý file upload.

Tạo Form Upload Trong View

Đầu tiên chúng ta cần tạo một form để người dùng có thể upload. Sử dụng thư viện TagLibs trong Spring MVC chúng ta có đoạn code sau:

<form action="${action_url}" enctype="multipart/form-data" method="post">
    <form:input type="file" path="myFile">
</form>

Ở trên bạn cần thay${action_url} là địa chỉ URL trên server mà dữ liệu form sẽ gửi tới.

Đoạn mã trên sẽ được render thành mã HTML như sau:

 <form action="..." enctype="multipart/form-data" method="post">
    <input type="file" name="myFile">
</form>

Xử Lý File Upload Trong Controller

Trong Spring MVC thì các business logic dùng để xử lý request (ví dụ như file upload) được đặt trong controller. Để xử lý form upload chúng ta sử dụng đoạn code sau:

@RequestMapping(
    value = "...",
    method = RequestMethod.POST,
    consumes = MediaType.MULTIPART_FORM_DATA_VALUE
)
public Object uploadFile(
    @RequestPart MultipartFile myFile
) {
    String fileName = file.getOriginalFilename();
    InputStream inputStream = file.getInputStream();
    String contentType = file.getContentType();
    //...
}

Trong đoạn code trên bạn lưu ý đặt tên cho tham số @RequestPart trùng với tên trường của file input trong HTML, trong trường hợp này là myFile.

0