flutter 用的Flutter Dio框架上传的,后台srpingboot 用springmvc和fileupload都没有取到。
最后用servlet自带的取到了 上代码:
controller层加@MultipartConfig注解,
取单个图片方法:
Part part = request.getPart("file");
String fileNames = getFileName(part);
String path = writeTo(fileNames,part,nowDate);
private String getFileName(Part part) {
String head = part.getHeader("Content-Disposition");
String fileName = head.substring(head.indexOf("filename=\"")+10, head.lastIndexOf("\""));
return fileName;
}
private String writeTo(String fileName, Part part,String nowDate)throws IOException {
String addAndFilename = "/"+"upload" + "/" + nowDate + "/";
filesPath=filesPath.replace("file:","");
String finalPath = filesPath + addAndFilename;
if (!new File(finalPath).exists() || !new File(finalPath).isDirectory()) {
new File(finalPath).mkdirs();
}
InputStream in = part.getInputStream();
OutputStream out = new FileOutputStream(finalPath+fileName);
byte[] b = new byte[1024];
int length = -1;
while((length = in.read(b))!=-1)
{
out.write(b, 0, length);
}
in.close();
out.close();
return addAndFilename+fileName;
}
取多个图片:
Collection<Part> parts = request.getParts();
if (parts.size()>0) {
String str="";
for (Part part : parts) {
if (part.getName().startsWith("file")) {
String nowDate = (new Date().getTime()) + "";
String fileNames = getFileName(part);
String path = writeTo(fileNames,part,nowDate);
str+=filesIp+path+",";
}
}