这篇文章主要为大家详细介绍了Java实现文件上传保存,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Java实现文件上传保存的具体代码,供大家参考,具体内容如下
框架
Spring Boot + FreeMarker + Ajax
第一次尝试Spring Boot 和FreeMarker, Spring Boot最大的感受是真的方便,约定大于配置,很多东西都是在使用过程中了解,看Spring Boot实战基本看完就忘得差不多…
后台
1. 从request获取到文件
MultipartFile类保存文件信息,文件上传放在request中,可debug查看request中实体观察到。
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
List<MultipartFile> files = multipartRequest.getFiles("img");
强制转换request获取MultipartHttpServletRequest,再获得MultipartFile文件
2. 写入上传文件夹
path在application.properties中定义,使用@Value标签注入。
/**
* 保存图像
*
* @param img
* @param userName
* @return
*/
private String writeImgToUpload(MultipartFile img, String userName) {
// Tomcat 放在C盘中,可能无读写权限而写入失败
// 写入目录文件
// 获取文件格式
String suffix = img.getOriginalFilename().substring(img.getOriginalFilename().lastIndexOf("."));
// 目标文件路径+文件名
String imgFile = path + userName + suffix;
File toFile = new File(imgFile);
if (!toFile.getParentFile().exists()) {
// when file is not existed, will create.
toFile.mkdirs();
}
// write to target file.
try {
img.transferTo(toFile);
return imgFile;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
前端
<form class="form-horizontal" id="authForm" method="post" enctype="multipart/form-data">
<div class="form-group">
<div class="col-sm-6">
<b><label for="img">上传认证</label></b>
<input type="file" id="img" name="img">
</div>
</div>
<div class="row">
<div class="col-xs-4">
<button type="submit" class="btn btn-primary btn-block btn-flat">注册</button>
</div>
</div>
</form>
Ajax通信
submitHandler : function(form) {
var file = new FormData();
var img = $('#img')[0].files[0];
file.append('img', img);
$.ajax({
url:base_url + "/auth/update",
type: "POST",
data: file,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (data) {
// 成功的回调
if (data.code == 200) {
layer.msg('认证成功');
setTimeout(function () {
window.location.href = base_url;
}, 500);
} else {
layer.open({
icon: '2',
content: (data.msg || '认证失败')
});
}
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:Java实现文件上传保存
猜你喜欢
- Springboot整合minio实现文件服务的教程详解 2022-12-03
- 深入了解Spring的事务传播机制 2023-06-02
- SpringBoot使用thymeleaf实现一个前端表格方法详解 2023-06-06
- JSP页面间传值问题实例简析 2023-08-03
- JSP 制作验证码的实例详解 2023-07-30
- Java中的日期时间处理及格式化处理 2023-04-18
- Java实现顺序表的操作详解 2023-05-19
- ExecutorService Callable Future多线程返回结果原理解析 2023-06-01
- 基于Java Agent的premain方式实现方法耗时监控问题 2023-06-17
- Spring Security权限想要细化到按钮实现示例 2023-03-07