SpringMVC文件上传原理及实现过程解析
作者:jock_javaEE 时间:2021-09-03 00:24:25
一、文件上传的必要前提
A form 表单的 enctype 取值必须是:multipart/form-data(默认值是:application/x-www-form-urlencoded) enctype:是表单请求正文的类型
B method 属性取值必须是 Post
C 提供一个文件选择域 input type=file
二、借助第三方组件实现文件上传
三、
/**
* springmvc跨服务器上传文件
* @return
*/
@RequestMapping("/testFileUpload1")
public String testFileUpload1(MultipartFile upload) throws IOException {
System.out.println("跨服务器文件上传...");
// 定义上传文件服务器路径
String path = "http://localhost:9090/uploads/";
// 说明上传文件项
// 获取上传文件的名称
String filename = upload.getOriginalFilename();
// 把文件的名称设置唯一值,uuid
String uuid = UUID.randomUUID().toString().replace("-", "");
filename = uuid+"_"+filename;
// 创建客户端的对象
Client client = Client.create();
// 和图片服务器进行连接
WebResource webResource = client.resource(path + filename);
// 上传文件
webResource.put(upload.getBytes());
return "success";
}
/**
*
* 这里的upload必须与index.jsp的upload一致
*
* springmvc文件上传
* @return
*/
@RequestMapping("/testFileUpload")
public String testFileUpload(HttpServletRequest request, MultipartFile upload) throws IOException {
// 使用fileupload组件完成文件上传
// 上传的位置(获取上传到服务器上的文件路径)
String path = request.getSession().getServletContext().getRealPath("/uploads/");
// 判断,该路径是否存在
File file = new File(path);
if(!file.exists()){
file.mkdir();
}
// 说明上传文件项
// 获取上传文件的名称
String filename = upload.getOriginalFilename();
// 把文件的名称设置唯一值,uuid
String uuid = UUID.randomUUID().toString().replace("-", "");
filename = uuid+"_"+filename;
// 完成文件上传
upload.transferTo(new File(path,filename));
return "success";
}
四、在springmvc.xml配置文件解析器
来源:https://www.cnblogs.com/jock766/p/13290111.html
标签:Spring,MVC,文件,上传
0
投稿
猜你喜欢
利用javaFX实现移动一个小球的示例代码
2022-06-18 19:04:51
Java实现学生成绩输出到磁盘文件的方法详解
2021-11-08 05:24:51
详解android使用ItemDecoration 悬浮导航栏效果
2022-05-07 18:17:09
Java C++题解leetcode字符串轮转KMP算法详解
2023-05-30 11:28:49
java实现ArrayList根据存储对象排序功能示例
2022-01-24 01:06:05
快速理解Java垃圾回收和jvm中的stw
2021-09-06 20:27:17
Mybatis如何使用ognl表达式实现动态sql
2021-06-22 03:34:49
.NET实现父窗体关闭而不影响子窗体的方法
2022-10-06 20:56:04
用SpringBoot+Vue+uniapp小程序实现在线房屋装修管理系统
2023-11-12 04:10:48
C#泛型约束的深入理解
2023-02-21 09:32:19
Java如何实现压缩文件与解压缩zip文件
2022-01-28 09:14:00
详解ArrayList的扩容机制
2022-06-18 05:56:32
Android 之BottomsheetDialogFragment仿抖音评论底部弹出对话框效果(实例代码)
2023-08-06 01:01:56
Android 仿苹果IOS6开关按钮
2023-11-21 15:16:08
SpringBoot整合JDBC、Druid数据源的示例代码
2022-06-19 20:44:24
mybatis中<choose>标签的用法说明
2023-07-22 19:37:27
如何更改Dialog的标题与按钮颜色详解
2023-06-01 23:54:54
Java项目开发中实现分页的三种方式总结
2021-08-25 21:36:36
android 权限大全 分享
2023-03-30 18:06:22
c#文档图片自动纠偏
2022-08-07 13:45:39