Spring’s multipart(fileupload) support

Một phần của tài liệu Báo Cáo Seminar- Spring MVC (Trang 31)

- Chú ý: Các lớp con của AbstractCachingViewResolver, cache view sẽ giải quyết

8. Spring’s multipart(fileupload) support

8.1. Giới thiệu

- Spring được tích hợp trong hỗ trợ nhiều phần xử lý tập tin tải lên trong các ứng dụng web. Bạn kích hoạt tính năng này nhiều lần hỗ trợ với các đối tượng MultipartResolver, được xác định trong gói org.springframework.web.multipart. Spring cung cấp MultipartResolver để sử dụng với Commons FileUpload .

- Theo mặc định,Spring không xử lý nhiều multipart, bởi vì một số nhà phát triển muốn xử lý chính multiparts. Bạn cho phép xử lý nhiều multipart dữ liệu Spring bằng cách thêm một multipart resolver để các ứng dụng web. Mỗi yêu cầu được kiểm tra để xem nếu nó có chứa nhiều multipart. Nếu không có nhiều multipart được tìm thấy, các yêu cầu tiếp tục. Nếu một multipart được tìm thấy trong yêu cầu, các MultipartResolver đã được khai báo trong context của bạn là được sử dụng. Sau đó, các thuộc tính nhiều multipart trong yêu cầu của bạn được xử lý như các thuộc tính khác.

8.2. Sử dụng MultipartResolver

- Ví dụ sau đây cho thấy làm thế nào để sử dụng CommonsMultipartResolver:

- Tất nhiên bạn cũng cần phải đặt các jar thích hợp trong classpath của bạn để làm việc với bộ phân tích nhiều phần. Trong trường hợp của CommonsMultipartResolver, bạn cần phải sử dụng commons-fileupload.jar.

- Khi Spring DispatcherServlet nhận diện một yêu cầu nhiều multipart, nó kích hoạt bộ phân tích được khai báo trong resoler (của) các bạn và sự trao tay của bạn trên yêu cầu. Giải quyết sau đó kết thúc bao bọc dòng HttpServletRequest thành một MultipartHttpServletRequest tập tin hỗ trợ nhiều phần tải lên. Sử dụng MultipartHttpServletRequest, bạn có thể nhận được thông tin về các multiparts có theo yêu cầu này và thực sự có được quyền truy cập vào các tập tin nhiều lần mình trong bộ controller của bạn.

8.3. Xử lý một tập tin tải lên trong một biểu mẫu

- Sau khi MultipartResolver hoàn thành, yêu cầu được xử lý như bất kỳ công việc khác. Đầu tiên, tạo một form với một đầu vào tập tin đó sẽ cho phép người dùng tải lên một form. Các thuộc tính mã hóa (Enctype = "multipart / form-data") cho

phép trình duyệt biết làm thế nào để mã hóa các hình thức theo yêu cầu nhiều multipart

- Bước tiếp theo là tạo ra một controller để xử lý các tập tin tải lên. Controller này tương tự như một normal annotated @Controller, ngoại trừ việc chúng tôi sử dụng MultipartHttpServletRequest hoặc MultipartFile trong các method parameters:

- Lưu ý @RequestParam method parameters nhập vào khai báo trong form. Trong ví dụ này, không có gì được thực hiện với byte[], nhưng trên thực tế bạn có thể lưu nó vào cơ sở dữ liệu, lưu trữ nó trên hệ thống tập tin và nhiều hơn nữa.

- Cuối cùng, bạn sẽ phải khai báo bộ controller and the resolver trong context ứng dụng.

Một phần của tài liệu Báo Cáo Seminar- Spring MVC (Trang 31)

w