多文件上传(表单提交)
前端文件上传方式为表单提交,后端用 HttpServletRequest 接收,如果需要携带参数前端也正常携带,后台通过request.getParameter(“name”)获取。
前端代码:
<form action="/xx/file" method="post" enctype="multipart/form-data">
<input type="intro" name="intro" /><br />
<input type="file" name="filelist" /><br />
<input type="file" name="filelist" /><br />
<input type="file" name="filelist" /><br />
<input type="submit" value="提交"/><br />
</form>
后端代码:
@RequestMapping("/file")
public ModelAndView file(HttpServletRequest request) {
//获取参数
String intro = request.getParameter("intro");
//保存文件
HttpServletFileUtil.getFileJon(request);
return new ModelAndView();
}
保存文件工具类
public class HttpServletFileUtil {
//系统内存的地址
private static String FILEPATH_SYS = "";
//服务器存放文件地址
private static String FILEPATH = "";
public static String getFileJon(HttpServletRequest request) {
//文件名,多文件中间使用,号隔开,或直接存为数组,根据业务更改
String fileJon = "";
if (request instanceof MultipartHttpServletRequest) {
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;
List<MultipartFile> files = multipartHttpServletRequest.getFiles("filelist");
Iterator<MultipartFile> iterator = files.iterator();
while (iterator.hasNext()) {
MultipartFile file = iterator.next();
if (file != null && file.getSize() > 0) {
try {
//获取文件后缀
// String filename = file.getContentType().substring(file.getContentType().lastIndexOf("/")).substring(1);
//文件名
String filedes = StringUtils.join(UUID.randomUUID().toString().replace("-", "") + ".jpg");
//获取文件路径信息 保存文件用的地址
String filepath = StringUtils.join(FILEPATH + filedes);
//系统内保存用的
String filepathSys = StringUtils.join(FILEPATH_SYS + filedes);
//多文件地址存数据库,地址中间,号隔开
if (StringUtils.isBlank(fileJon)) {
fileJon = StringUtils.join(fileJon, filepathSys);
} else {
fileJon = StringUtils.join(fileJon + ",", filepathSys);
}
File sa = new File(filepath);
file.transferTo(sa);
} catch (IOException e) {
e.printStackTrace();
}
}
}
} else {
throw new Exception("相关图片不能为空");
}
return fileJon;
}
}


7810

被折叠的 条评论
为什么被折叠?



