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.去物理路徑查看文件



自此,上傳多文件示例結束。

相關文章
相關標籤/搜索