springmvc 上传文件到服务器

来源:互联网 发布:折八百淘宝商城马甲 编辑:程序博客网 时间:2024/06/07 00:13
记录,自我学习 springmvc上传文件,图片到服务器
form表单设置  enctype="multipart/form-data"
// 新建mapMap<String, Object> map = new HashMap<String, Object>();
// 从请求中获取到文件信息需要将请求转换为MultipartHttpServletRequest类型MultipartHttpServletRequest MulRequest = request instanceof MultipartHttpServletRequest? (MultipartHttpServletRequest) request : null;Iterator<String> fileNames = MulRequest.getFileNames();if (fileNames.hasNext()) {// 遍历请求中的图片信息String fileName = fileNames.next(); // 图片对应的参数名// log.debug("fileName:" + fileName);MultipartFile file = MulRequest.getFile(fileName); // 获取到图片String oldName = file.getOriginalFilename();// 文件原名称
//更新时判断有没有重新选择文件if (oldName == null || "".equals(oldName)) {
map.put("filepath", request.getParameter("filepath"));map.put("filename", request.getParameter("filename"));map.put("oldname", request.getParameter("oldname"));} else {String path = null;// 文件路径String type = null;// 文件类型// 判断文件类型type = oldName.indexOf(".") != -1 ? oldName.substring(oldName.lastIndexOf(".") + 1, oldName.length()): null;String newFileName = String.valueOf(System.currentTimeMillis()) + "." +type;if (type != null) {
//服务器路径(相对路径)存在tomcat编译项目的路径中,clean时会把上传的文件删掉String filepath = UploadPath.CPZXIMGSPATH;path = request.getSession().getServletContext().getRealPath("/") + filepath;File targetFile = new File(path, newFileName); // 新建文件if (!targetFile.exists()) { // 判断文件的路径是否存在targetFile.mkdirs(); // 如果文件不存在 在目录中创建文件夹}if ("GIF".equals(type.toUpperCase()) || "PNG".equals(type.toUpperCase())|| "JPG".equals(type.toUpperCase())) {saveFile(file, targetFile);// 文件名map.put("filepath", filepath);map.put("filename", newFileName);map.put("oldname", oldName);}}}}
/*** * 保存文件到服务器 * @param file * @return */private boolean saveFile(MultipartFile file, File targetFile) {// 判断文件是否为空if (!file.isEmpty()) {try {// 转存文件file.transferTo(targetFile);return true;} catch (Exception e) {e.printStackTrace();}}return false;}