带有Java后端的YUI Uploader

时间:2009-06-12 20:55:24

标签: java spring spring-mvc yui

我正在尝试将(基于闪存的)YUI Uploader与Java(基于Spring)的后端一起使用。

在Java Servlet世界中上传文件的典型方法是在HTML表单上设置ENCTYPE='multipart/form-data',从用户请求文件。使用正确的服务器端API(即Commons FileUpload),可以在服务器上获取该文件。

但我对如何使用YUI Uploader实现这一点感到困惑。我能够访问Java控制器,甚至可以提取自定义帖子值。但我不知道如何从请求中提取二进制文件数据。

有没有人对使用Java后端的YUI上传器有好运?

1 个答案:

答案 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对象,就应该能够完全相同。