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

spring和mybatis框架中实现文件上传功能

2017-10-20 10:49 681 查看
import java.io.File;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;

===========文件上传controller层===========
@Controller
@RequestMapping("/file")
public class FileController extends BaseController{

//文件上传方法 参数fileBean为文件实体
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
@ResponseBody
public FileBean uploadFile(FileBean fileBean
HttpServletRequest request) throws Exception {
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession()
.getServletContext());
commonsMultipartResolver.setDefaultEncoding("utf-8");
// 判断是否有文件上传
if (commonsMultipartResolver.isMultipart(request)) {//有文件上传
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Iterator iter = multiRequest.getFileNames();
while (iter.hasNext()) {
MultipartFile imageFile = multiRequest.getFile(iter.next().toString());//(String) iter.next()
//文件保存方法,其中参数imageFile为文件路径,fileBean文件实体
fileBean= fileService.addFile(request, imageFile, fileBean);
}
}
return fileBean;
}

}

===========文件上传service层===========
FileBean addFile(HttpServletRequest request,MultipartFile imageFile, FileBean fileBean);

===========文件上传service实现层===========
@Override
@Transactional
public FileBean addFile(HttpServletRequest request, MultipartFile imageFile,FileBean fileBean) {
try {
String filePath = request.getSession().getServletContext().getRealPath("/static/fileAttach");
File file2 = new File(filePath);
if (!file2.exists()) {
file2.mkdirs();
}
String name=imageFile.getOriginalFilename().substring(imageFile.getOriginalFilename().lastIndexOf("."));
String newName = BasicTool.getUUID()+name;//
String path=filePath+File.separator+newName;
File file1= new File(path);
if(file1.exists()){
file1.delete();
}
imageFile.transferTo(file1);
fileBean.setF_name(imageFile.getOriginalFilename());//文件名称
fileBean.setF_filepath("/static/fileAttach/" + newName);////文件路径
fileBean.setId(BasicTool.getUUID());////文件id
fileBean.setF_uploadtime(new Date());////文件上传时间
int addCount=0;
addCount= fileWriteMapper.addFile(fileBean);//保存方法
} catch (Exception e) {
e.printStackTrace();
}
return fileBean;
}

===========文件上传dao层===========
int addFile(FileBean fileBean);

===========文件上传dao实现层===========

insert into t_file

id,

name,

filepath,

uploadtime,

#{id},

#{name},

#{filepath},

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