File转MultipartFile,慎入
导包的事我就不多谈了,百度找有的是,本文讲的是java代码如何将文件如何上传阿里oss
先说下前端怎么上传
这是前端上传实现,传入了一个MyltipartFile格式的文件.首先想到的是转换成CommonsMultipartFile文件,但是好像转换出来的文件跟前端传的参数不一样,报错 String index out of range: -1,
看了下CommonsMultipartFile的源码,发现file.getBytes()方法的底层经验是FileItem.get()方法
满血复活
解决一切 附createFileItem方法
```java
public FileItem createFileItem(String filePath) {
FileItemFactory factory = new DiskFileItemFactory(16, null);
String textFieldName = "textField";
int num = filePath.lastIndexOf(".");
String extFile = filePath.substring(num);
FileItem item = factory.createItem(textFieldName, "text/plain", true, "MyFileName");
File newfile = new File(filePath);
int bytesRead = 0;
byte[] buffer = new byte[8192];
try {
FileInputStream fis = new FileInputStream(newfile);
OutputStream os = item.getOutputStream();
while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
return item;
}