文件上传功能的开发流程
思路:
①引入“文件上传”功能的工具包;
②添加文件实体domain–Files;
③Html页面的使用方法;
④Controller层的调用方法
步骤:
1.引入“文件上传”功能的工具包
(文件上传的路径及其命名规则都封装在了这几个工具包内)
package com.***.util;
public class bConst1 {
// 验证码
public static final String SESSION_SECURITY_CODE = "sessionSecCode";
// session用的用户
public static final String SESSION_USER = "sessionUser";
public static final String SESSION_MENU_RIGHTS = "sessionMenuRights";
// 当前菜单
public static final String SESSION_menuList = "menuList";
// 当前菜单
public static final String SESSION_allmenuList = "allmenuList";
// 未登录时的菜单
public static final String SESSION_nousermenuList = "nousermenuList";
// 修改权限
public static final String SESSION_QX = "QX";
// 用户ID
public static final String SESSION_USERID = "SX_USERID";
// 用户名
public static final String SESSION_UNAME = "SX_UNAME";
// 登陆名
public static final String SESSION_USERNAME = "SX_USERNAME";
// 用户角色
public static final String SESSION_USERROLEID = "SX_USERROLEID";
// 用户所管理的所有下属区域列表(用户管理用)
public static final String SESSION_USERAREALIST = "USERAREALIST";
// 用户所管理的区域及所有下属区域列表(经纬度信息管理用)
public static final String SESSION_MAPAREALIST = "MAPAREALIST";
public static final String TRUE = "T";
public static final String FALSE = "F";
// 文件路径
public static final String FILEPATH = "uploadFiles/";
// 图片上传路径
// public static final String FILEPATHIMG = "uploadFiles/uploadImgs/";
// 系统文件路径
public static final String FILEPATHFILE = "uploadFiles/file/";
// 系统文件路径
public static final String FILEPATHBACKIMAGE = "uploadFiles/file/backimage/";
//申请文件上传路径
public static final String FILEPATHAPPLY = "uploadFiles/applyfile/";
//导出节目excel文件压缩包临时文件夹
public static final String FILEPATHPROTEMP = "uploadFiles/protemp/";
//特种节目文件夹
public static final String FILEPATHPROSPEC = "uploadFiles/audiofile/prospec/";
//节目文件夹
public static final String FILEPATHPER = "uploadFiles/audiofile/";
public static final String[] LOGTYPE=new String[]{"登陆日志","操作日志"};
public static final String SHOWTEXT = "SHOWTEXT";
}
package com.***.util;
//常量
public class bConstant1 {
/** 文件上传/图片 根目录 */
public static final String UPLOAD_PATH = System.getProperty("user.home") + "/upload/"; //bConst1.FILEPATHPER
/** 图片目录 */
public static final String IMG_FILE_NAME = "img";
/** 图片相对路径 */
public static final String VIRTUAL_IMG_PATH = "img/virtual";
}
package com.***.util;
import com.ruoyi.village.domain.Files;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
public class bFileUtil1 {
private static Logger logger = LoggerFactory.getLogger(bFileUtil1.class);
/**
* 图片存储 完整路径({user.home}/img/coldStone/XXX.jpg)
* @param file
* @return 返回相对路径
*/
public static String saveImg(MultipartFile file,String saveName) {
//获取文件上传的根目录 C:\Users\fama/upload/img
String path = bConstant1.UPLOAD_PATH + bConstant1.IMG_FILE_NAME; //改为bConstant.UPLOAD_PATH
//拿到文件的后缀名和UUID进行拼接形成新的文件名
//4ca64e85b1544c96b4a6154bb521476f.jpg
//String saveName = bCommonUtil.getUuid() + "." + getFileSuffix(file.getOriginalFilename());
logger.info(" --- 文件保存路径:{}, 文件保存名称:{},文件原名称:{} --- ", path, saveName,file.getOriginalFilename());
// 保存
try {
// 保存文件图片
File targetFile = new File(path);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
file.transferTo(new File(path + "/" + saveName));
} catch (Exception e) {
e.printStackTrace();
logger.debug("--- 文件保存异常:{} ---" + e.getMessage());
return null;
}
String filePath = bConstant1.UPLOAD_PATH;;
//返回相对路径 img/virtual/4ca64e85b1544c96b4a6154bb521476f.jpg
return saveName; //filePath + "/" + saveName