我正在尝试使用(基于flash的) YUI Uploader和一个Java (基于Spring的)后端。
在Java Servlet世界中,上传文件的典型方式是在向用户请求文件的HTML表单上设置ENCTYPE='multipart/form-data'。使用正确的服务器端API(即Commons FileUpload),可以获取服务器上的文件。
但是我被如何使用YUI Uploader实现这一点所阻碍。我可以访问Java控制器,甚至可以提取自定义的post值。但是我不知道如何从请求中提取二进制文件数据。
有没有人用过带有Java后端的YUI uploader?
发布于 2009-06-15 05:23:20
为了回答我自己的问题,长话短说,这段代码做到了这一点:
@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对象,就应该能够执行完全相同的操作。
https://stackoverflow.com/questions/988998
复制相似问题