java --多文件上传

直接上代码
html

1.controller层代码
java

//文件上传用到的文件包
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartRequest;
......

@RestController
public class CustomerCommentController{
    
    @Autowired
    private CustomerCommentService customerCommentService;
    
     /**
     * 
     * 测试多文件上传
     * 
     * **/
    @RequestMapping(value = "/test",method=RequestMethod.POST)
    public ResultObject test(@RequestParam("files") MultipartFile[] files){
        
        System.out.println("files:"+files);
        ResultObject ro = customerCommentService.test(files);
        return ro;
    }

}

2.文件上传用到的jar包web

                                图1:jar包
spring

                        图2:具体对应位置
浏览器

3.pom.xml文件对应部分mvc

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-dao</artifactId>
            <version>2.0.8</version>
        </dependency>

4.service层代码app

import org.springframework.web.multipart.MultipartFile;
......

public interface CustomerCommentService {
    
     /**
     * 
     * test多文件上传
     * 
     ***/
    public ResultObject test(MultipartFile[] files);

}

5.实现层代码post

import org.springframework.web.multipart.MultipartFile;
......


@Service
public class CustomerCommentServiceImpl implements CustomerCommentService{
    
        /**
     * 
     * test测试多文件上传
     * 
     * **/
    public ResultObject test(MultipartFile[] files){
        
        ResultObject ro = new ResultObject();
        
        StringBuffer path = new StringBuffer();
        path = path.append(configReader.getDriverLetter()).append(configReader.getLocalPath()).append(1000000000).append("/").append(1000000001).append("/");
        System.out.println("文件存放路径"+path);
        //若是目录不存在,则新建
        File dir = new File(path.toString());
        if(!dir.exists()){
            dir.mkdirs();
        }
        String tmpPath = path.toString();
        for (int i = 0; i < files.length; i++) {
            
            MultipartFile file = files[i];
            
            //图片命名
            String tmp = Utils.getSysTimeSSS();
            tmpPath = tmpPath+tmp+".png";
            System.out.println("文件路径:"+tmpPath);
            
            //上传图片
            try {
                byte[] bytes = file.getBytes();
                BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(tmpPath)));
                stream.write(bytes);
                stream.close();
                tmpPath=path.toString();
            } catch (IOException e) {
                e.printStackTrace();
                
                //评论图片上传失败
                return null;
            }
        }
        
        return ro;
    }
    
}

6.测试代码测试

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html" charset="utf-8">
    <title> This is my HTML </title>
</head>
<body>
    <h3> 上传多文件实例 </h3>

    <form action="http://192.168.2.67:8080/pets/test" method="post" enctype="multipart/form-data">
        选择文件1:<input type="file" name="files"><br>
        选择文件2:<input type="file" name="files"><br>
        <input type="submit" value="提交">
    </form>

</body>
</html>

7.浏览器打开如上xx.html文件
ui


8.点击"提交"按钮

打断点在实现层,主要查看文件路径,,截图以下

9.文件路径及名称

很明显的发现,咱们上传了两张图片,路径以下

E:/Resource/pets/User/1000000000/1000000001/

命名以下,我都是用时间命名

10.去物理路径查看文件



自此,上传多文件示例结束。