您现在的位置是:首页 > java技术交流java技术交流
springboot本地图片上传-上传图片到本地磁盘目录
上善若水2020-12-10 15:30:10【java技术交流】
3041人已围观
简介springboot结合layui实现图片上传功能,使用MultipartFiletransferTo()自带的方法实现本地上传图片,并设置addResourceHandlers实现图片回显功能。
springboot结合layui实现图片上传功能,使用MultipartFile transferTo()自带的方法实现本地上传图片,并设置addResourceHandlers实现图片回显功能。
1.前端layui js部分代码
//普通图片上传
var uploadInst = upload.render({
elem: '#test1'
, url: '/admin/upload/img?type=banner'
, before: function (obj) {
//预读本地文件示例,不支持ie8
obj.preview(function (index, file, result) {
$('#demo1').attr('src', result); //图片链接(base64)
});
}
, done: function (res) {
//如果上传失败
if (res.code > 0) {
return layer.msg(res.msg);
}
layer.msg('上传成功!');
$("input[name='cover']").val(res.data.src)
//上传成功
}
, error: function () {
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function () {
uploadInst.upload();
});
}
});
2.后台控制器
@Controller
class AdminUploadController {
@PostMapping("admin/upload/img")
@ResponseBody
public Map<String, Object> img(@RequestParam(value = "file") MultipartFile file, @RequestParam String type) {
type = StringUtils.isEmpty(type) ? "article" : type;
String suffixName = UploadConstants.getSuffixName(file);
//生成文件名称通用方法
//创建文件
String newFileName = type + "/" + UploadConstants.getNewFileName(suffixName);
File destFile = new File(UploadConstants.BASE_PATH + type);
if (!destFile.exists()) {
destFile.mkdirs();
}
Map<String, Object> result = new HashMap<>();
try {
file.transferTo(new File(UploadConstants.BASE_PATH + newFileName));
result.put("code", 0);
result.put("msg", file.getOriginalFilename());
result.put("data", Map.of("src", UploadConstants.ACCESS_PATH + newFileName));
} catch (IOException e) {
result.put("code", 500);
result.put("title", "图片上传失败!" + e.getMessage());
}
return result;
}
}
UploadConstants类
@Component
public class UploadConstants {
public static String BASE_PATH = "E:/blog/upload/";
public static String ACCESS_PATH = "/upload/";
@Value("${upload.basePath}")
public void setUploadBasePath(String basePath) {
UploadConstants.BASE_PATH = basePath;
}
@Value("${upload.accessPath}")
public void setUploadAccessPath(String accessPath) {
UploadConstants.ACCESS_PATH = accessPath;
}
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation(UploadConstants.BASE_PATH);
return factory.createMultipartConfig();
}
/**
* @Description: 获取图片后缀
* @Param: [file]
* @return: java.lang.String
* @date: 2019/8/24 15:27
*/
public static String getSuffixName(MultipartFile file){
String fileName = file.getOriginalFilename();
return fileName.substring(fileName.lastIndexOf("."));
}
/**
* @Description: 生成文件名称通用方法
* @Param: [suffixName] 图片后缀
* @return: java.lang.String
* @date: 2019/8/24 15:29
*/
public static String getNewFileName(String suffixName){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
int random = new Random().nextInt(100);
StringBuilder tempName = new StringBuilder();
tempName.append(sdf.format(new Date())).append(random).append(suffixName);
return tempName.toString();
}
}
yam配置
upload:
basePath: E:/blog/upload/
accessPath: /upload/
3.总结
再图片上传时,如果配置的yml文件目录不存在,系统则会自动帮我创建,在上传主目录建立的子目录需要手动创建,否则无法上传。
上传的文件的扩展名需要手动分割字符串取扩展名,或许有专门的文件上传插件简化这一操作吧。
Tags: springboot图片上传
很赞哦! (10)
随机图文
php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。开怀一笑,让你开心的幽默故事三则
1.信不信由你 现在让骗子闹的人们对任何事情都不敢轻信,真是多次被忽悠,遇事要三思。如果拿着一瓶矿泉水告诉你,这是某某大师施过法术的,可以益寿延年,你肯定不信,如果说这瓶水经过高科技纳米技术处理,又由美国科学院认证,你八成就信了。 你爱人买了件连衣裙,大家都说她穿上真好看,她不一定信,如果有一个说她穿上不好看,她肯定信了。 明星访谈,说他们夫妻如何相亲相爱,你大概不太相信,如果有人说他们俩闹逗女孩开心的笑话,哄女陔开心的笑话
1.同学看上了一姑娘实在太好了,经过一番激烈的思想斗争,终于出手了。同学:阿姨,你好!妈妈:恩……同学:是这样的,我想认识您女儿。妈妈:这是我儿媳妇。2.今天我从我15岁的女儿电脑上搜出来一部A片,藏在'未来的职业'文件夹里,未来的职业!未来的职业!未来的职业!3.学校门口有两个水果摊,一女生在A摊买香蕉,挑的时候不停用手捏香蕉,估计是看熟不熟。这时B摊的小贩说:同学,到我这边买,我这边幽默笑话:学生们特别喜欢音乐史课,因为任课的音乐老师非常幽默
1、去相亲,正和女方聊得如火如荼,一个三岁左右的女孩走到我身旁,怯怯的叫了声爸爸。我惊出一身冷汗,赶紧同女方解释:“她不是我女儿!”女方淡淡的道:“我知道,她是我女儿!”2、我上大一的时候的事。刚刚军训完,上大学语文。老师是一个中年妇女,上课可认真了,有一次她正讲课,教室后排的同学都在说话,老师大叫一声:“后面的朋友”话刚落音,不知道哪个二货接了句:“你们好吗?”全班同学都笑趴了。3、早上