图片文件上传,分文件夹保存,单个、多个上传,移动端和web端上传出现错误(格式、大小等)
::maven项目
::前端layui,bootstrap,jquery
::win10
:: Spring Boot (v2.1.4.RELEASE)
::jdk1.8
::tomcat8.5
::maven3.2.3
::MySQL5.7
properties文件如果配置为如下内容,会类型转换错误
spring.servlet.multipart.max-file-size = 4Mb
spring.servlet.multipart.max-request-size=20Mb
控制台错误提示:failed to convert java.lang.String to org.springframework.util.unit.DataSize
properties文件如果配置为如下内容(MB的大小)
spring.servlet.multipart.max-file-size = 4MB
spring.servlet.multipart.max-request-size=20MB
上传组件引入:
(根据文件引入目录确定引入路径)
上传触发按钮:
上传触发事件:
layui.use('upload', function(){ //初始化组件
var upload = layui.upload;
//执行实例
var uploadInst = upload.render({
elem: '#test11' //绑定元素
,url: '/daren_web/uploadImage2/openid/123' //上传接口
,multiple: false//是否多文件上传
,accept: 'images' //只允许上传图片
,acceptMime: 'image/*' //只筛选图片
,size: 1024*4 //限定大小
,done: function(res){
//上传完毕回调
//JSON.parse(jsonstr);可以将json字符串转换成json对象
//JSON.stringify(jsonobj);可以将json对象转换成json对符串
var resultData = JSON.stringify(res);
console.info(resultData);
}
,error: function(){
//请求异常回调
}
});
});
//引入的包:(仅供参考)
import java.io.File;
import java.io.IOException;
import java.util.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
@RequestMapping({"/uploadImage2/{number}/{uid}"})
@ResponseBody
public String uploadaaa(MultipartFile file,@PathVariable("uid")String uid ,@PathVariable("number")String number) {
try {
//SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String path = "C:/Users/laijiangkeliuxingming/Desktop/"+number+"/"+uid+"/";//文件保存位置
UUID uuid = UUID.randomUUID();//生成唯一标识
String originalFilename = file.getOriginalFilename();
String extendName = originalFilename.substring(originalFilename.lastIndexOf("."), originalFilename.length());
String fileName = uuid.toString() + extendName;//新名称
File dir = new File(path + fileName);
File filepath = new File(path);
System.out.println("路径==" + filepath.getParentFile());
//判断文件夹是否存在,否则新建
if (!filepath.exists())
filepath.mkdirs();
else {
System.out.println(filepath.getParentFile());
}
file.transferTo(dir);
}catch (IllegalStateException e){
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
String str = "";//layui可识别的json字符串(仅供参考)
str = "{\"code\":0,\"msg\":\"\",\"data\":{\"src\":\"http://cdn.layui.com/123.jpg\"}}";
return str;
}
出现问题,包括但不限于以下原因:
application.properties配置文件有空格,jar包正确导入,项目运行
1:前台数据无法传输(传输协议、请求头、数据绑定、数据名称、数据格式、数据类型)
2:后台代码数据接收(注解使用、限定请求方式post/get、数据类型、数据名称)
3:后台接收数据没有正确解析
仅供我们小白参考,不提供代码,不保证复制粘贴使用,疑则百度,留言次之。