Tôi đang cố tải lên nhiều tệp bằng cách sử dụng spring 3.1.2 với @Controller và @RequestMapping.Tải lên nhiều tệp Spring MVC với nhiều tính năng dạng tệp HTML5
Đây là những gì tôi đã làm và cấu hình của tôi.
dạng Html5:
<form action="addFileSystemImage.foo" method="post" enctype="multipart/form-data">
<input class='fileInput' type="file" name="files[]" multiple="multiple" />
<input type="text" value="13asdf12eadsf" name="locId"/>
<input type="submit" />
</form>
điều khiển phương pháp:
@RequestMapping(value="/publisher/addFileSystemImage.foo", method=RequestMethod.POST)
public @ResponseBody List<UploadedFile> addFileSystemImage(@RequestParam("files[]") ArrayList<MultipartFile> files, String locId, HttpServletRequest request) {
//do lotsa voodoo rocket science here to process the files
}
conf của tôi:
<mvc:annotation-driven />
<context:component-scan base-package="foo.package"></context:component-scan>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
Nộp theo hình thức không đến được với các phương pháp addFileSystemImage. Dữ liệu cho đối số locId ở đây, nhưng đối số "tệp" không bị ràng buộc. Nó có hệ thống null không có vấn đề gì kết hợp của các đối số/tên trường/loại đối số tôi đã thử.
Đối số HttpServletRequest là org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest và nó giữ thuộc tính multiPartFile thực sự chứa dữ liệu tệp. Nhìn vào giá trị của nó trong debug mang lại cho tôi
{files[]=[[email protected]6afd7f9, [email protected]28c2811, [email protected]f9aaed7]}
có nghĩa là tập tin của tôi [] là thực sự ở đây ... nhưng bằng cách nào đó nó đã không vượt qua được dữ liệu ràng buộc bước đúng ...
Bây giờ ... Tôi biết bạn sẽ cho tôi biết tôi có thể lấy dữ liệu từ yêu cầu ... nhưng tôi muốn làm việc này đúng cách ... Sring cách ... :) và có ArrayList của tôi của MultipartFile đúng dân cư.
Tôi có thiếu gì đó không? Có ai thực sự thực hiện công việc này đúng không? Những gì tôi có thể làm để có ArrayList này (hoặc thậm chí một Array thường xuyên) dân cư?
Tôi đã vượt qua giải pháp này Spring MVC with ajax file upload and MultipartFile có nhiều điều tương tự như tôi nhưng rõ ràng là tôi phải làm điều gì đó sai vì giải pháp này không hoạt động đối với tôi.
Lưu ý: Tôi đã cố gắng làm cho nó hoạt động với các tệp tải lên một lần. Nhưng thách thức của tôi ngày hôm nay là để có được nhiều tập tin cùng một lúc.
Bất kỳ trợ giúp nào được đánh giá cao.
Xin cảm ơn trước.
Bạn có cố gắng khai báo đối số "tệp" dưới dạng tệp Danh sách hoặc Multipart [] không? Tôi không nghĩ rằng danh sách sao lưu mùa xuân là một ArrayList và có thể các diễn viên thất bại khi mùa xuân cố gắng để ràng buộc các đối số phương pháp. –
Tôi đã xoay xở để có được những thứ như thế này trong quá khứ. Tôi nhớ bạn cũng phải bao gồm phụ thuộc vào tải lên của tệp commons trong pom của bạn. Có thể thử điều đó? – gerrytan
Ngu ngốc tôi ... Nó đã làm việc với Danh sách và Mảng ... Tôi chắc chắn đã mất dấu những gì tôi đã làm trong suốt quá trình thử nghiệm ... Cảm ơn Alex. Bạn có thể trả lời câu hỏi và tôi sẽ cung cấp cho bạn điểm nếu bạn muốn. Chúc mừng! – azpublic