1. 程式人生 >實用技巧 >其它 >java接收檔案流並操作檔案流

java接收檔案流並操作檔案流


1.controller層

@PostMapping("/upload")
    public Resp upload(@RequestParam MultipartFile multipartFile, HttpServletRequest request) throws IOException {
        modelService.upload(multipartFile, request);
        return Resp.justSuccess();
    }

2.service層

    @Transactional(rollbackFor = Exception.class)
    public void upload(MultipartFile multipartFile, HttpServletRequest request) throws IOException {
        //獲取前端上傳的檔名稱
        String originalFileName = multipartFile.getOriginalFilename();
        //取檔名下標,給檔案重新命名的時候使用
        String suffix = originalFileName.substring(originalFileName.indexOf("."));
        //取一個隨機id給檔案重新命名使用
        String uuid = UUID.randomUUID().toString();
        //你的接收的檔案新的名字
        String filename = uuid+suffix;
        String uri = request.getSession().getServletContext().getRealPath("/");
        System.out.println(uri);
        //在專案新建一個 你重新生成名稱的檔案
        File file = new File(uri+ "/" + filename);
        //將接收的到的 multipartFile 型別的檔案 轉為 file
        multipartFile.transferTo(file);
        //獲取接收到的並存在專案本地的檔案,這樣你就可以拿著這個檔案隨意處理啦
        String filePath = file.getAbsolutePath();

        String input = FileUtils.readFileToString(file,"UTF-8");
        
        File f = new File(file.toURI());
        if (f.delete()){
            log.info("刪除成功");
        }else {
            log.info("刪除失敗");
        }
    }

3.postman測試

java接收檔案流並操作檔案流


java接收檔案流並操作檔案流


這裡選擇你要上傳的本機檔案就可以了。

這種方式其實就是我們先把檔案流臨時儲存在伺服器的預設目錄裡,等到我們用完檔案後就可以把它刪除了,否則會佔用伺服器的一些記憶體。