File转MultipartFile,慎入

File转MultipartFile,慎入

导包的事我就不多谈了,百度找有的是,本文讲的是java代码如何将文件如何上传阿里oss
先说下前端怎么上传
File转MultipartFile,慎入_第1张图片
这是前端上传实现,传入了一个MyltipartFile格式的文件.首先想到的是转换成CommonsMultipartFile文件,但是好像转换出来的文件跟前端传的参数不一样,报错 String index out of range: -1,
看了下CommonsMultipartFile的源码,发现file.getBytes()方法的底层经验是FileItem.get()方法
File转MultipartFile,慎入_第2张图片
满血复活
在这里插入图片描述
解决一切 附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;
    }

你可能感兴趣的:(IO)