项目中里粘同事的,出处不好找,如有借鉴雷同见谅。
废话不多说,上代码。
首页是页面
<div id="uploadfile_sea" style="margin-top: 20px;display:none;text-align:center;">
<label style="float:left;font-size: 15px;margin-left: 62px;">选择文件:</label>
<form action="#" enctype="multipart/form-data" method="post" id="uploadrlafile">
<input type="file" name="file" id="uploadfile_sea_file" /><!--001 webkitdirectory mozdirectory -->
<button type="button" οnclick="uploadSEAFile()">点击上传</button>
<button type="button" id="cancel_sea">取消上传</button>
</form>
</div>
ajax请求的一些设置
traditional: true,
type:'post',
contentType: false,
processData: false,
001:是可以上传文件夹的设置,放到input属性中
后台代码
@RequestMapping("/uploadSEAFile")
@ResponseBody
public ResultMsg uploadSEAFile( @RequestParam("file") MultipartFile file,HttpServletRequest request){
ResultMsg massage=new ResultMsg();
String name="";
try {
//转换成这个对象,然后我们需要通过里面的FileItem来获得相对路径
name = ((CommonsMultipartFile) file).getFileItem().getName();
String path=request.getSession().getServletContext().getRealPath("SECTION");
File file_this = new File( path+ "/"+name);
File file_path =new File(path);
if (!file_path.exists() && !file_path.isDirectory()) {
file_path.mkdirs();
}
boolean createNewFile = file_this.createNewFile();//002
if(createNewFile == true){
file.transferTo(file_this);
}else{
massage.setMessage("文件名重复,上传失败!");
massage.setState(0);
return massage;
}
massage.setState(1);
massage.setMessage("文件上传成功!");
}catch (Exception e){
e.printStackTrace();
massage.setMessage("文件上传失败!");
massage.setState(0);
}
return massage;
}
002处注意:把文件内容重建到新的内容中,如果如果操作成功返回true,如果失败,文件存在就返回false。我觉得还是非常好用的。
以上就是所有代码了。