1

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

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

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

有没有人对带有 Java 后端的 YUI 上传器有任何运气?

4

1 回答 1

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 对象,您就应该能够执行完全相同的操作。

于 2009-06-15T05:23:19.897 回答