一:封装一个静态方法
/**
* 附件上传(支持各种文件)
* @param MultipartFile 类型的file文件对象
* @return Map - fileName(文件名称) , newFileName(新文件名称) ,saveFilePath(上传路径)
*/
public static Map<String, String> uploadFile(MultipartFile file){
Map<String , String> objectMap = new HashMap<String , String>();
//获取前台传递的文件
MultipartFile imgFile1 = file;
// 获取图片的文件名
String fileName = file.getOriginalFilename();
// 获取图片的扩展名
String extensionName = fileName.substring(fileName.lastIndexOf(".") + 1);
// 新的图片文件名 = 获取时间戳+"."图片扩展名
String newFileName = String.valueOf(System.currentTimeMillis()) + "." + extensionName;
//图片上传路径
String picDir = Property.getValue("imagepath");;
String saveFilePath = picDir;
//构建文件目录
File fileDir = new File(saveFilePath);
//判断是否有该文件夹,没有新建
if (!fileDir.exists()) {
fileDir.mkdirs();
}
//上传图片
try {
FileOutputStream out = new FileOutputStream(saveFilePath + "\\" + newFileName);
// 写入文件
out.write(imgFile1.getBytes());
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
objectMap.put("fileName", fileName);
objectMap.put("saveFilePath", saveFilePath);
objectMap.put("newFileName", newFileName);
return objectMap;
}
二:前台
multiple :加上这个代表按住 Ctrl 能多选
<form action="方法名?fkzj=${fkzj}" id="myform2" method="post" enctype="multipart/form-data" onsubmit="return check()">
<table>
<tr id="fujian" >
<td class="title_td" >附件</td>
<td >
<input type="file" multiple id="file" name="file" />
<input type="submit" value="上传附件" />
</td>
</tr>
</table>
</form>
二:后台方法
/**
* 批量上传附件
*/
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleFormUpload(MultipartHttpServletRequest request,Jdjc_fkfjModel fjModel,ModelMap modelmap){
String fkzj=request.getParameter("fkzj");
List<MultipartFile> file = request.getFiles("file");
for (int i = 0; i < file.size(); i++) {
//调用静态方法
Map<String , String> imgxxMap = ListToMap.uploadFile(file.get(i));
String imgpath=(imgxxMap.get("saveFilePath") +"/" + imgxxMap.get("newFileName"));
fjModel.setPath(imgpath);
fjModel.setName(imgxxMap.get("fileName"));
fjModel.setFkzj(fkzj);
fjModel.setZj(CommonUtil.getUUID32());
fjservice.add(fjModel);
}
//上传成功后 继续返回当前页 但许保留zj
modelmap.put("fkzj", fkzj);
return "/cydwgl/lhzfbs/fj_add";
}
相关推荐
SpringBoot版本的SpringMVC+Freemarker上传案例,地址是localhost:8888/photo/index进入上传页面,默认是三个文件,自己可以屏蔽两个文件就是单个文件的状态了,首先在电脑的D盘新建一个upload的文件夹,...
在这个“SpringMVC文件上传,多文件上传实例”中,我们将深入探讨如何在SpringMVC环境中实现文件上传功能,包括单个文件上传以及多个文件的批量上传。 1. **文件上传原理**: 文件上传是通过HTTP协议的POST请求来...
### SpringMVC 实现单个文件上传功能 #### 一、背景介绍 在现代Web应用开发中,文件上传是一项常见的需求。SpringMVC作为Spring框架的一部分,提供了强大的支持来处理文件上传任务。本文将详细介绍如何在SpringMVC...
springMvc 文件上传,springMvc 支持单文件和多文件上传,
在本文中,我们将深入探讨如何使用SpringMVC和MyBatis框架,以及Maven构建工具来实现一个简单的附件上传功能,特别关注图片上传,并将文件存储到本地磁盘。这个项目适用于Java开发者,特别是那些使用Java 1.7及以上...
这个"springMVC多文件上传demo"是一个实例,它展示了如何在Spring MVC应用中实现这个功能。下面将详细介绍相关知识点。 1. **Spring MVC概述** Spring MVC是Spring框架的一部分,它提供了一个用于构建Web应用程序...
- 限制文件大小和类型,防止DoS攻击或上传恶意文件。 - 对文件名进行安全处理,避免路径遍历等安全问题。 8. **最佳实践**: - 使用异步上传以改善用户体验,特别是在上传大文件时。 - 实现错误处理和重试机制...
本教程将深入探讨如何在SpringMVC中集成MyBatis实现文件上传、多文件上传、文件列表展示以及文件下载功能。 首先,我们需要在SpringMVC项目中配置MyBatis。这包括在`spring-servlet.xml`中配置数据源、事务管理器、...
multipart请求是HTTP协议中用于上传文件的一种特殊类型,它可以包含多个部分,每个部分可以是一个表单字段或者一个文件。 **单文件上传** 对于单文件上传,我们需要在表单中添加`<input type="file">`元素,然后在...
在这个"springMVC图片上传示例"项目中,我们将深入探讨如何在SpringMVC环境中实现图片附件的上传功能,包括多图上传、图片预览及文本域传值。 一、SpringMVC概述 SpringMVC是Spring框架的一部分,它遵循模型-视图-...
`SpringMVC`作为Java后端的一个强大框架,提供了处理文件上传的能力。而`Ajax`技术则使得页面可以在不刷新的情况下与服务器进行交互,实现异步上传,极大地提升了用户体验。在本教程中,我们将探讨如何结合`...
在开发Web应用时,文件上传和下载功能是常见的需求,特别是在处理用户数据或者提供资源服务时。本主题将深入探讨如何使用SpringMVC和SSH(Struts2 + Hibernate + Spring)框架来实现文件的上传与下载。 首先,我们...
这个"SpringMVC文件上传Demo代码"是一个实例,演示了如何配置和使用SpringMVC来实现这一功能。 首先,我们需要在SpringMVC的配置文件(如`servlet-context.xml`)中启用多部分支持。这通常涉及到注册一个`...
在SpringMVC中,文件上传主要依赖于`CommonsMultipartResolver`,这是Spring提供的一个解析多部分请求的组件。在配置文件中,我们需要添加如下配置启用文件上传: ```xml <!-- 指定最大上传文件大小 --> ...
通过以上步骤,我们可以构建一个具备附件上传下载功能的SpringMVC应用。在实际开发中,可能还需要考虑文件的权限控制、安全性、异常处理等更多细节。持续优化和测试,以确保系统的稳定性和用户体验。
在IT行业中,SpringMVC和Ajax是两种广泛使用的技术,它们在构建现代Web应用程序时起着至关重要的作用。...在实际开发中,你可以根据需求进一步优化,例如添加进度条显示、多文件上传支持,或者集成其他验证和安全策略。
Vue.js作为一个前端框架,可以很好地与Spring MVC结合,实现用户界面的交互和文件上传的处理。在这个项目中,我们将深入探讨如何使用Spring MVC作为后端控制器来处理文件上传,以及Vue.js在前端如何与之配合。 首先...
一旦图片成功上传,后端的Controller可以返回一个包含图片URL或其他相关信息的响应。前端接收到响应后,可以动态更新HTML,将新上传的图片显示在页面上。 在实际项目中,为了提高用户体验,可能还需要添加进度条...
在Web应用中,文件上传是一项常见的...总结,基于SpringMVC的文件上传功能涉及到环境配置、控制器编写、视图设计、文件存储策略以及安全措施等多个方面。理解并掌握这些知识点,可以构建出稳定、高效的文件上传系统。