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

Java教程:如何讀取服務(wù)器文件并推送到前端并下載,圖片格式以瀏覽器渲染模式

這篇具有很好參考價值的文章主要介紹了Java教程:如何讀取服務(wù)器文件并推送到前端并下載,圖片格式以瀏覽器渲染模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

起因:

----在我們做文件上傳時,通常會保存文件的相對路徑在數(shù)據(jù)庫中,然后返回前端http訪問路徑,來對文件進行下載或圖片預覽功能,但是有時候我們并不想直接返回文件訪問地址給前端,這就用到了Java當中的文件輸入輸出流,將文件以流的方式響應給瀏覽器,并渲染出圖片或下載,接下來就列出具體代碼,供大家使用

Java后端代碼:

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.*;

/**
 * 文件流-Controller
 */
@Slf4j
@RestController
@RequestMapping("/fileStream")
public class FileStreamController {

    /**
     * 獲取文件流
     *
     * @param fileAddress 文件地址
     * @return
     */
    @GetMapping("/getFileStream")
    public void getFileStream(@RequestParam("fileAddress") String fileAddress, HttpServletResponse response) {
        File file = new File("文件路徑");
        if (!file.isFile()) {
            throw new RuntimeException("文件不存在");
        }

        // 設(shè)置響應類型
        if ("jpg/jpeg/png/bmp/gif/tif/icon/ico".contains(file.getName().substring(file.getName().lastIndexOf(".") + 1).toLowerCase())) {
            response.setContentType("text/html; charset=UTF-8");
            response.setContentType("image/jpeg");
        } else {
            response.setContentType("application/octet-stream;charset=UTF-8");
            response.setHeader("Content-Disposition", "attachment;filename=" + file.getName());
        }

        InputStream inputStream = null;
        OutputStream outputStream = null;
        try {
            inputStream = new FileInputStream(file);
            outputStream = new BufferedOutputStream(response.getOutputStream());

            byte[] buffer = new byte[1024];
            while (true) {
                int len = inputStream.read(buffer);
                if (len == -1) {
                    break;
                }
                outputStream.write(buffer, 0, len);
            }
            outputStream.flush();
        } catch (Exception e) {
            log.error("文件讀取異常,原因:{}", e.toString());
            throw new RuntimeException("文件讀取異常");
        } finally {
            try {
                if (outputStream != null) {
                    outputStream.close();
                }
                if (inputStream != null) {
                    inputStream.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

效果:

當我們路徑設(shè)置為圖片時,瀏覽器訪問結(jié)果如下:

java 后端從本地獲取文件下載到前端,java,服務(wù)器,前端

當我們路徑設(shè)置為其他文件時,則為下載:

java 后端從本地獲取文件下載到前端,java,服務(wù)器,前端

本次教程到這里就結(jié)束了,希望大家多多關(guān)注支持(首席摸魚師 微信同號),持續(xù)跟蹤最新文章吧~文章來源地址http://www.zghlxwxcb.cn/news/detail-774016.html

到了這里,關(guān)于Java教程:如何讀取服務(wù)器文件并推送到前端并下載,圖片格式以瀏覽器渲染模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • CSV導出(通過讀取數(shù)據(jù)字節(jié)流直接上傳文件到服務(wù)器)

    CSV導出(通過讀取數(shù)據(jù)字節(jié)流直接上傳文件到服務(wù)器)

    文件之前讀取大多數(shù)都是用前端點擊相應傳入后端,通過HttpServletResponse response得輸入輸出流進行導入導入導出數(shù)據(jù)。 近期碰到得需求是定時查詢數(shù)據(jù)庫數(shù)據(jù)并通過csv文件上傳至系統(tǒng)。所以不能使用HttpServletResponse,因為對應文件流比較熟悉所以最開始使用文件流進行讀寫數(shù)據(jù)

    2024年02月12日
    瀏覽(22)
  • java讀取服務(wù)器數(shù)據(jù)包并下載至本地目錄

    java讀取服務(wù)器數(shù)據(jù)包并下載至本地目錄

    jsch包如果沒有的話,可評論聯(lián)系我,我私發(fā)給你,或者通過https://mvnrepository.com/artifact/com.jcraft/jsch/0.1.55進行下載,添加至工程目錄

    2024年02月09日
    瀏覽(26)
  • 對讀取的Excel文件數(shù)據(jù)進行拆分并發(fā)請求發(fā)送到后端服務(wù)器

    對讀取的Excel文件數(shù)據(jù)進行拆分并發(fā)請求發(fā)送到后端服務(wù)器

    首先,我們先回顧一下文件的讀取操作: 本地讀取Excel文件并進行數(shù)據(jù)壓縮傳遞到服務(wù)器-CSDN博客 第一步:根據(jù)以上博客,我們將原先的handleFile方法,改為以下內(nèi)容: 先對data數(shù)據(jù)進行打印,獲取到一千多行的數(shù)據(jù)信息 那么如何對1000多條信息進行分組處理呢???? 因為我

    2024年01月23日
    瀏覽(21)
  • 如何把本地flask項目(框架)上傳到服務(wù)器(Linux),并后臺持續(xù)運行(包括requirements文件生成,python項目與域名綁定,保姆級教程)

    如何把本地flask項目(框架)上傳到服務(wù)器(Linux),并后臺持續(xù)運行(包括requirements文件生成,python項目與域名綁定,保姆級教程)

    ?2023年中旬,參加了一個比賽,需要搭建一個網(wǎng)站。在不斷探索琢磨之后,搭建了一個基于flask的web。直接上干貨: 一、首先,在本地準備好自己的flask項目。包括最基本的三個文件: 然后準備生成requirements.txt文件,這個文本文件會告訴服務(wù)器你的項目運行所需要的環(huán)境,即

    2024年02月04日
    瀏覽(23)
  • 【OPCUA】使用Java開源項目milo連接KEPServerEX6服務(wù)器并讀取值

    【OPCUA】使用Java開源項目milo連接KEPServerEX6服務(wù)器并讀取值

    準備工作: 開發(fā)環(huán)境:KEPServerEX-6.x,JDK-8,milo-0.2.4 KEPServerEX下載:https://pan.baidu.com/s/1kbAh46cCYV0JGeXm3kuX5A?pwd=hy71? 提取碼:hy71(非破解版,可以自行去官網(wǎng)下載,安裝過程一直點下一步就好了) 項目代碼:UseMilo 參考文章:使用java的milo框架訪問OPCUA服務(wù)的方法 文章簡介: 使用

    2024年02月04日
    瀏覽(30)
  • 如何解決使用若依前后端分離打包部署到服務(wù)器上后主包無法找到從包中的文件的問題?如何在 Java 代碼中訪問 jar 包中的資源文件?

    在使用若依前后端分離打包部署到服務(wù)器上后,可能會出現(xiàn)主包無法找到從包中的文件的問題,這個問題通常是由于資源文件沒有正確地打包到 jar 包中導致的。本文將介紹如何解決這個問題,包括如何在 Java 代碼中訪問 jar 包中的資源文件、如何將資源文件復制到系統(tǒng)臨時目

    2024年02月22日
    瀏覽(26)
  • Rclone傳輸文件到服務(wù)器或者從服務(wù)器到本地教程

    Rclone傳輸文件到服務(wù)器或者從服務(wù)器到本地教程

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 最近有從linux服務(wù)器傳輸大量文件的需求,通過常規(guī)的xshell工具十分緩慢,最終還是自己配置了rclone,這里是記錄配置過程,以防后續(xù)遺忘。 https://rclone.org/downloads/這是官網(wǎng)地址,windows進去下載解壓就可

    2024年02月03日
    瀏覽(28)
  • 基于ESP32搭建物聯(lián)網(wǎng)服務(wù)器六(利用SPIFFS存放html,css,js等文件(讀取html)

    基于ESP32搭建物聯(lián)網(wǎng)服務(wù)器六(利用SPIFFS存放html,css,js等文件(讀取html)

    在前文中:ESP32的web服務(wù)器(內(nèi)嵌HTML)_你的幻境的博客-CSDN博客 已經(jīng)實現(xiàn)建立了一個WEB服務(wù)器了,但是頁面的HTML代碼是鑲嵌在C語言代碼中的,大部份情況下,不管是調(diào)試或者使用都是很不方便的。但是ESP32的SPIFFS提供了很好的解決方法,SPIFFS相當于ESP32中的一個硬盤分區(qū),每種版

    2024年02月02日
    瀏覽(27)
  • Nginx搭建文件下載服務(wù)器教程!

    搭建基于Nginx的文件下載服務(wù)器非常簡單。以下是教程: 安裝Nginx: 在終端中執(zhí)行以下命令以安裝Nginx: 配置Nginx: 打開Nginx配置文件進行編輯: 修改配置文件: 在? http 塊內(nèi)添加以下配置: 保存并關(guān)閉配置文件: 按下? Ctrl + X ,然后輸入? Y 來保存更改并關(guān)閉編輯器。 測

    2024年02月07日
    瀏覽(29)
  • 詳解如何使用Nginx搭建文件服務(wù)器及實現(xiàn)文件服務(wù)

    公司最近有做文件服務(wù)器的需求,并且使用到了Nginx做負載均衡服務(wù)器,順水推舟,就想著順便用作文件服務(wù)器算了,實際上它也非常適合。 Nginx是一種輕巧、高效的Web服務(wù)器,用作文件服務(wù)器非常合適。但是如果需要一些高級功能,如FTP遠程訪問、多用戶管理,可能需要選

    2024年02月09日
    瀏覽(90)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包