小杨不掉发 2022-06-01 17:33 采纳率: 71.4%
浏览 134
已结题

express返回图片

为什么我返回图片给前端还是乱码

img

img

img


这是为什么呢,我的content-type是JPEG啊

  • 写回答

2条回答 默认 最新

  • Heerey525 前端领域新星创作者 2022-06-02 16:21
    关注

    后端这么写没问题,是对的
    前端接收到的是文档流的形式,需要规定ajax以blob形式接收,然后下载
    https://blog.csdn.net/m0_37687058/article/details/124177135
    https://zhuanlan.zhihu.com/p/502721718

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <button onclick="downloadImage()">下载图片</button>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
        <script>
            function downloadImage() {
                const imageName = '1.png' // 下载图片名称
                $.ajax({
                    url: 'http://localhost:3000/public/img/' + imageName,
                    type: 'GET',
                    xhrFields: {
                        responseType: 'blob' // 规定以blob形式接收
                    },
                    success: (res) => {
                        const a = document.createElement('a');
                        const blob = new Blob([res]);
                        const href = window.URL.createObjectURL(blob);
                        a.href = href;
                        a.download = imageName;
                        document.body.appendChild(a);
                        a.click();
                        document.body.removeChild(a);
                        window.URL.revokeObjectURL(href);
                    }
                })
            }
        </script>
    </body>
    
    </html>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月14日
  • 已采纳回答 6月6日
  • 创建了问题 6月1日

悬赏问题

  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事: