国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java實(shí)現(xiàn)文件的上傳和下載,將文件流轉(zhuǎn)base64返回給前端

這篇具有很好參考價(jià)值的文章主要介紹了java實(shí)現(xiàn)文件的上傳和下載,將文件流轉(zhuǎn)base64返回給前端。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

上傳代碼

public ResultInfo<?> uploadFile(@RequestParam MultipartFile file, @RequestParam String id) throws BusinessException{
        try {
            if (file.isEmpty()) {
                return JsonResult.error(StatusCode.ERROR_ADD);
            }
            // 獲取文件名
            String fileName = file.getOriginalFilename();
            System.out.println("上傳的文件名為:" + fileName);
            String preName = fileName.substring(0,fileName.lastIndexOf("."));
            // 獲取文件的后綴名
            String suffixName = fileName.substring(fileName.lastIndexOf(".")+1);
            System.out.println("文件的后綴名為:" + suffixName);
            // 設(shè)置文件存儲(chǔ)路徑         *************************************************
            String filePath = "自己的文件路徑/";
            String path = filePath + fileName;
            File dest = new File(new File(path).getAbsolutePath());// dist為文件,有多級(jí)目錄的文件
            // 檢測(cè)是否存在目錄
            if (dest.getParentFile().exists()) {//因此這里使用.getParentFile(),目的就是取文件前面目錄的路徑
                //如果存在文件夾
                FileSystemUtils.deleteRecursively(dest.getParentFile());// 刪除文件夾
            }
            dest.getParentFile().mkdirs();// 新建文件夾
            file.transferTo(dest);// 文件寫入
            return this.update(actionData);
        } catch (IllegalStateException e) {
            e.printStackTrace();
            throw new BusinessException("999999", "業(yè)務(wù)數(shù)據(jù)操作異常", e);
        } catch (IOException e) {
            e.printStackTrace();
            throw new BusinessException("999999", "業(yè)務(wù)數(shù)據(jù)操作異常", e);
        }
    }

文件下載代碼

public ResultInfo<?> downloadFile(String fileName , HttpServletResponse response) throws BusinessException{
        if (fileName != null) {
            //設(shè)置文件路徑
            String filePath = "自己的文件路徑"+"/"+fileName;
            File file = new File(filePath);
            if (file.exists()) {
                response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);// 設(shè)置文件名
                byte[] buffer = new byte[1024];
                FileInputStream fis = null;
                BufferedInputStream bis = null;
                try {
                    fis = new FileInputStream(file);
                    bis = new BufferedInputStream(fis);
                    OutputStream os = response.getOutputStream();
                    int i = bis.read(buffer);
                    while (i != -1) {
                        os.write(buffer, 0, i);
                        i = bis.read(buffer);
                    }
                    return JsonResult.success(bis);
                } catch (Exception e) {
                    e.printStackTrace();
                } finally { // 做關(guān)閉操作
                    if (bis != null) {
                        try {
                            bis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    if (fis != null) {
                        try {
                            fis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
        return JsonResult.error(StatusCode.ERROR_ADD);
    }

后端通過(guò)json拿到文件流的返回,我采用將文件流轉(zhuǎn)成base64返回給前臺(tái),實(shí)現(xiàn)代碼如下:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-534426.html

public ResultInfo<?> downloadFile(String fileName ) throws BusinessException{
        if (fileName != null) {
            //設(shè)置文件路徑
            String filePath = "自己的文件路徑/"+fileName;
            String base64 = null;
            InputStream in = null;
            try {
                File file = new File(filePath);
                in = new FileInputStream(file);
                byte[] bytes=new byte[(int)file.length()];
                in.read(bytes);
                base64 = Base64.getEncoder().encodeToString(bytes);
            } catch (Exception e) {
                e.printStackTrace();
                throw new BusinessException("999999", "業(yè)務(wù)數(shù)據(jù)操作異常", e);
            }finally {
                if(in!=null){
                    try {
                        in.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                        throw new BusinessException("999999", "業(yè)務(wù)數(shù)據(jù)操作異常", e);
                    }
                }
            }
            return JsonResult.success(base64);
        }
        return JsonResult.error(StatusCode.ERROR_ADD);
    }

到了這里,關(guān)于java實(shí)現(xiàn)文件的上傳和下載,將文件流轉(zhuǎn)base64返回給前端的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java后端向前端返回文件流——實(shí)現(xiàn)下載功能!

    Java后端向前端返回文件流——實(shí)現(xiàn)下載功能!

    前端實(shí)現(xiàn)文件下載功能有多種方法,這里就不一一介紹,這里只介紹使用文件流下載的實(shí)現(xiàn)方法。 既然是文件流那就肯定需要給前端返回一堆二進(jìn)制編碼,作為后端就可以返回一個(gè) OutPutStream 后端可以使用Java中servlet提供的 HttpServletResponse ,核心步驟是要設(shè)置響應(yīng)的數(shù)據(jù)類型

    2024年02月08日
    瀏覽(28)
  • vue3管理系統(tǒng)中后臺(tái)返回pdf格式的文件流,前端如何預(yù)覽?以及uniapp微信小程序中后臺(tái)返回的base64位的pdf文件如何預(yù)覽?

    vue3管理系統(tǒng)中后臺(tái)返回pdf格式的文件流,前端如何預(yù)覽?以及uniapp微信小程序中后臺(tái)返回的base64位的pdf文件如何預(yù)覽?

    后臺(tái)返回的是base64格式的pdf文件,首先需要解析base64文件的插件 image-tools 1 安裝并引入插件 2 封裝預(yù)覽pdf的函數(shù) 3 調(diào)用接口獲取數(shù)據(jù)

    2024年01月18日
    瀏覽(176)
  • JS前端讀取本地上傳的File文件對(duì)象內(nèi)容(包括Base64、text、JSON、Blob、ArrayBuffer等類型文件)

    FileReader.readAsArrayBuffer() - Web API 接口參考 | MDN FileReader 接口提供的 readAsArrayBuffer() 方法用于啟動(dòng)讀取指定的 Blob 或 File 內(nèi)容。當(dāng)讀取操作完成時(shí),readyState 變成 DONE(已完成),并觸發(fā) loadend 事件,同時(shí) result 屬性中將包含一個(gè) ArrayBuffer 對(duì)象以表示所讀取文件的數(shù)據(jù)。 https://

    2024年02月15日
    瀏覽(59)
  • 前端FileReader對(duì)象實(shí)現(xiàn)圖片file文件轉(zhuǎn)base64

    前端FileReader對(duì)象實(shí)現(xiàn)圖片file文件轉(zhuǎn)base64

    1、file轉(zhuǎn)base64具體代碼 2、原理解析 ? 上面封裝的方法,其原理主要是借助 FileReader 對(duì)象來(lái)實(shí)現(xiàn)圖片格式的轉(zhuǎn)換, FileReader 對(duì)象中的 readAsDataURL() 方法,可以讀取一個(gè) File 或 Blob 類型的文件,并將其轉(zhuǎn)換為base64格式的字符串。但要注意的一點(diǎn)是:我們通過(guò) readAsDataURL() 方法去讀

    2023年04月09日
    瀏覽(33)
  • java下載指定文件并返回給前端返回流文件

    java下載返回文件流的實(shí)現(xiàn) 作為一名經(jīng)驗(yàn)豐富的開(kāi)發(fā)者,我將教會(huì)你如何實(shí)現(xiàn)Java下載返回文件流的功能。在這篇文章中,我將分為以下幾個(gè)部分來(lái)詳細(xì)介紹這個(gè)過(guò)程: 1.簡(jiǎn)介 2.實(shí)現(xiàn)步驟 3.代碼示例 4.總結(jié) 在Java開(kāi)發(fā)中,有時(shí)候我們需要實(shí)現(xiàn)文件下載功能,并且將文件以流的形

    2024年03月15日
    瀏覽(25)
  • java和js實(shí)現(xiàn)前端加密后端解密,后端加密前端解密(Base64)

    目錄 1.前端加密后端解密 2.后端加密前端解密 在前端和后端數(shù)據(jù)傳輸時(shí),常常涉及到隱私數(shù)據(jù)的傳輸(例如用戶名和密碼),這時(shí),我們就需要對(duì)隱私數(shù)據(jù)進(jìn)行加密解密 1.前端加密后端解密 ????????1.1 前端jquery實(shí)現(xiàn) ????????1.2后端 2.后端加密前端解密 ? ? ? ? 2.1后端加密

    2024年02月16日
    瀏覽(30)
  • uniapp 微信小程序base64流轉(zhuǎn)圖片

    因?yàn)檫@次后端返回的圖片并不是一個(gè)http地址,百度找了很久,在此記錄 1,新建一個(gè)js文件 2.在vue文件中引入 import {?base64ToPath} from \\\'./base64src.js\\\' let result = 后端返回的base64流.replace(/[rn]/g, \\\"\\\"); let pdfBase64 = `data:application/pdf;base64,${result}`;

    2024年02月16日
    瀏覽(95)
  • python篇---base64碼流轉(zhuǎn)成圖片保存
  • 圖片文件和 Base64 字符串互轉(zhuǎn)(Java 實(shí)現(xiàn))

    ??項(xiàng)目中,有些場(chǎng)景下,客戶端需要將本地圖片傳輸?shù)椒?wù)方存儲(chǔ),此時(shí)客戶端可以將圖片文件轉(zhuǎn)為 Base64 字符串傳輸?shù)椒?wù)方,服務(wù)方收到后再將 Base64 字符串還原為圖片。以下是一些圖片文件和 Base64 字符串互轉(zhuǎn)的工具類,以及校驗(yàn)圖片大小的工具。 一、依賴包 二、工

    2024年02月04日
    瀏覽(30)
  • react將文件轉(zhuǎn)為base64進(jìn)行上傳

    將 圖片、pdf、word、excel等文件 進(jìn)行上傳。圖片、pdf等調(diào)接口A、word、excel等附件調(diào)接口B。接口關(guān)于文件是 base64格式 的參數(shù) 上傳資源,區(qū)分 影像與附件 使用原生input標(biāo)簽, type=\\\'file\\\' ,進(jìn)行上傳 上傳后的回調(diào),對(duì)文件進(jìn)行分類,影像與附件 對(duì)文件進(jìn)行base64編碼 執(zhí)行接口進(jìn)行

    2024年02月10日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包