使用Spring MultipartFile和Google App Engine上传文件
问题内容:
我一直在尝试使用MVC和Google App引擎上传文件。每当我遇到错误
预期的MultipartHttpServletRequest:是否配置了MultipartResolver?
之后,我参考了两个教程来上传文件。每次流都流向控制器,但可以使用Spring MVC和Google
App引擎访问jsp文件中上载的MultipartFile文件。这两个参考是
http://alasdoo.com/2010/10/how-to-upload-a-file-with-spring-mvc-3-and-google-
app-engine/
https://code.google.com/p/gmultipart/
因此,任何人都可以指导我解决这些问题的参考文献中有什么错误。
问题答案:
以下方法将返回您需要在其上发布文件的回调URL。
上传网址方法
@RequestMapping(value = "/uploadurl", method = RequestMethod.GET)
public String getImageUploadUrl() {
modelMap.addAttribute('uploadUrl',blobstoreService.createUploadUrl("/imageupload));
return "upload";
}
以下是您将在其中嵌入代码的JSP代码段。我正在使用 JSTL* 将URL放入 表单标签 中。 *
JSP页面
<form action="${uploadUrl}" method="POST" enctype="multipart/form-data">
<input type="file" name="myFile" multiple="multiple" />
</form>
上传处理程序方法
@ResponseBody
@RequestMapping(value = "/imageupload", method = RequestMethod.POST)
public void getUploadedImagesUrls(HttpServletRequest request){
Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(request);
List<BlobKey> blobKeys = blobs.get("myFile[]");
if (blobKeys == null) {
return null;
} else {
for(BlobKey blobKey : blobKeys){
// ImagesService services = ImagesServiceFactory.getImagesService();
// ServingUrlOptions serve = ServingUrlOptions.Builder.withBlobKey(blobKey);
// String imageUrl = services.getServingUrl(serve);
BlobInfoFactory blobInfoFactory = new BlobInfoFactory();
BlobInfo info = blobInfoFactory.loadBlobInfo(blobKey);
System.out.println("Image URL : "+imageUrl);
System.out.println("Image FileName : "+info.getFilename());
}
}
}