功能是上传一个图片文件到服务器路径并根据路径打开文件
jsp代码如下:
<form action="${ctx}/file/oneUpload" method="post" enctype="multipart/form-data"> <h3>hello</h3> <div class="control-group"> 文件:<input type="text" name="fileName"/> <input type="file" name="fileTest"/> </div> <div class="control-group"> <input type="submit" value="上传"/> </div> </form>
处理的controller如下:
@RequestMapping("/file")
public class FileUploadController {
@RequestMapping(value = "/oneUpload")
public String oneUpload(@RequestParam("fileTest") MultipartFile fileTest,
HttpServletRequest request, ModelMap model) {
String uploadUrl = request.getSession().getServletContext().getRealPath("/") + "upload/";
String fileName = fileTest.getOriginalFilename();
File dir = new File(uploadUrl);
if (!dir.exists()) {
dir.mkdirs();
}
System.out.println("上传文件到:" + uploadUrl + fileName);
File targetFile = new File(uploadUrl + fileName);
if (!targetFile.exists()) {
try {
targetFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
fileTest.transferTo(targetFile);
} catch (IOException e) {
e.printStackTrace();
}
return "redirect:http://localhost:8080/demo-test/upload/" + fileName;
}
}
生成的文件夹及上传的文件路径如下:

但最终返回的结果是:

首先看你发布的程序根目录下是否有demo-test/upload/这个目录,http://localhost:8080/demo-test/upload/" + fileName;这是访问根目录的。
第二,看你访问静态资源的时候,访问路径是不是也被dispatcher转发了,用了mvc的形式了。
有这个目录的,就是你说的第二个问题 突然想到了 我傻啦 哈哈哈 谢谢啦
少了@controller
只是没贴出来而已。。。