您的位置:首页 > 编程语言 > Java开发

springmvc文件上传

2017-11-15 18:56 316 查看

第一步:

springmvc配置文件

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<!--1024*200即2000k -->
<property name="maxUploadSize" value="2048000" />
<property name="defaultEncoding" value="UTF-8" />
<!--resolveLazily属性启用是为了推迟文件解析,以便在UploadAction 中捕获文件大小异常 -->
<property name="resolveLazily" value="true" />
</bean>

 第二步:

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addUserSubmit(String userName,String passWord, MultipartFile headerfile,HttpServletRequest request) throws IllegalStateException, IOException {
//构造保存文件路径
String path = request.getServletContext().getRealPath("/") + "upload/";
String fname = getFileName(headerfile.getOriginalFilename());
File saveFile = createFile(new File(path,fname ));
//保存文件到指定路径
headerfile.transferTo(saveFile);

//保存数据库
User user = new User(userName,passWord,"upload/"+fname);
userServer.addUser(user);
return "forward:/user/list";
}


/**
* 判断是否文件路径,如果是路径进行切割获取文件名 注:不同浏览器返回不一样,有些直接是文件名,有些是路径带文件名
*
* @param filePath
* E:\fun\picture1\item1.PNG; item2.png
* @return item1.PNG;item2.png
*/
public String getFileName(String filePath) {
String fileName = filePath;
if (filePath.contains("\\")) {
int endIndex = filePath.lastIndexOf("\\");
fileName = filePath.substring(endIndex + 1); // item1.PNG
}
return fileName;
}

/**
*
* 创建多级文件目录 指定文件 如: e:/liu/hai/bing.tx
*/
public File createFile(File file) {
if (file.exists()) {
return file;
}
try {
String fileDir = file.getPath();
int lastIndex = fileDir.lastIndexOf(File.separator);
String dir = fileDir.substring(0, lastIndex);
File dirFile = new File(dir);
dirFile.mkdirs();
if (file.createNewFile()) {
return file;
} else {
return null;
}
} catch (IOException e) {
return null;
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: