功能是上传一个图片文件到服务器路径并根据路径打开文件
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
只是没贴出来而已。。。