我正在尝试将(基于闪存的)YUI Uploader与Java(基于Spring)的后端一起使用。
在Java Servlet世界中上传文件的典型方法是在HTML表单上设置ENCTYPE='multipart/form-data'
,从用户请求文件。使用正确的服务器端API(即Commons FileUpload),可以在服务器上获取该文件。
但我对如何使用YUI Uploader实现这一点感到困惑。我能够访问Java控制器,甚至可以提取自定义帖子值。但我不知道如何从请求中提取二进制文件数据。
有没有人对使用Java后端的YUI上传器有好运?
答案 0 :(得分:2)
要回答我自己的问题,并且长话短说,这段代码可以解决问题:
@Controller
@RequestMapping("/FileUploadController")
public class FileUploadController {
@RequestMapping(method = RequestMethod.POST)
protected ModelAndView onSubmit(HttpServletRequest request) throws Exception{
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> /* FileItem */ items = upload.parseRequest(request);
for (FileItem fileItem : items) {
if (fileItem.isFormField()) {
// processFormField(fileItem);
} else {
File uploadedFile = new File("/tmp/junk/" + fileItem.getName());
fileItem.write(uploadedFile);
}
}
return new ModelAndView("index");
}
}
此示例使用Spring,但只要您拥有HttpServletRequest对象,就应该能够完全相同。