将烧瓶 send_file (ajax 响应)中的图像显示到图像标记中

2024-01-12

如何显示来自烧瓶 send_file ajax 响应的图像

HTML 文件


<button class="button" id="start">Start</button>

    <script>
        //start button click event

        $('#start').click(function() {
            $.ajax({
                url: 'http://127.0.0.1:5000/capture',
                type: 'GET',
                contentType: "image/jpg",
                success: function(result) {
                    document.getElementById('frame').src = 'data:image/jpg,' + result;
                }
            });
        });

flask


@app.route('/capture')
def capture_api():
    ...
    image_binary = img.read()

    return send_file(io.BytesIO(image_binary),
                     mimetype='image/jpeg',
                     as_attachment=True,
                     attachment_filename='%s.jpg' % "capture")


您必须将图像数据编码为 base64 并将其添加到 dom 中的图像元素中。

我在 repl.it 中创建了一个示例应用程序:https://repl.it/@MichaelAnckaert/Flask-Playground https://repl.it/@MichaelAnckaert/Flask-Playground

这是一个 Flask 应用程序示例:

from flask import Flask, render_template, make_response
import base64
app = Flask('app')

@app.route('/')
def hello_world():
  return render_template('image.html')


@app.route('/capture')
def capture_api():
  with open("house-thumbs-up.gif", "rb") as f:
    image_binary = f.read()

    response = make_response(base64.b64encode(image_binary))
    response.headers.set('Content-Type', 'image/gif')
    response.headers.set('Content-Disposition', 'attachment', filename='image.gif')
    return response

app.run(host='0.0.0.0', port=8080)

以及对应的HTML模板:

<img id="image">

<button class="button" id="start">Start</button>

<script src="https://code.jquery.com/jquery-3.5.1.min.js"     integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script>
  let button = document.getElementById("start")
  button.addEventListener('click', () => {
    $.ajax({
        url: 'https://luminoustwincase--five-nine.repl.co/capture',
        type: 'GET',
        contentType: "image/jpg",
        success: function(result) {
          document.getElementById('image').src = 'data:image/gif;base64,' + result;
        }
    });
  });
</script> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将烧瓶 send_file (ajax 响应)中的图像显示到图像标记中 的相关文章

随机推荐

  • 使用 Qt 设计应用程序

    我必须实现图形用户界面设计 选择的框架是Qt 经过一些实施工作后 出现了一些困难和问题 主要的一点是有一些花哨的设计元素 比如渐变 3D效果 阴影等等 目前使用的方法 我真的不太喜欢 是使用图形设计中的位图作为各种小部件的背景 根据元素的放
  • CVPixelBuffer 到 CIImage 总是返回 nil

    我试图将从 AVPlayerItemVideoOutput 中提取的 PixelBuffer 转换为 CIImage 但总是为零 The Code if videoOutput hasNewPixelBufferForItemTime pl
  • iPhone模拟器资源未更新

    我的 iPhone 模拟器拒绝更新我编辑的资源 进行 清理 并构建后 安装了新资源 在第二次运行时 它重新安装了旧的 我不知道它们是从哪里来的 有什么建议么 Go into Library Application Support iPhon
  • 比较 2 个文件并保留两个文件不共同的条目

    我有一个 CSV 文件和一个数据库表作为输入 我需要保留数据库表中的所有记录 但排除 CSV 文件中的记录 最终所有内容都会写入 CSV 文件 我所有的尝试都导致了数百个重复 所以我在这里面临很大的挑战 这是一个快速而肮脏的技巧 但它应该适
  • Concrete5:我可以在常规页面上使用 $_GET 变量作为查询字符串吗?

    GET 变量如何与 Concrete5 一起使用 我可以在常规页面上使用它吗 我知道我可以通过 url 段对单页执行此操作 我只是想知道常规页面是否可以 例子是 http www domain name com about us name
  • 弯曲方向列的高度相等,无需设置高度

    我想要一个没有明确设置高度的弹性容器 并且它的所有子容器都具有相同的高度 我不太清楚如何实现这一点 如果弹性容器设置了高度 我可以让它工作 但我希望它的高度根据子项是动态的 同样 它们应该都是相等的 并根据最大的孩子计算 我不想依赖js来使
  • Matplotlib 获取子图(轴)大小?

    只是徘徊 如何获得 Matplotlib 中子图 轴 的大小 如果我执行 Ctrl F 大小 https matplotlib org 3 1 1 api axes api html https matplotlib org 3 1 1 a
  • SQL Server 返回不等于 <> 值且为 NULL 的行

    我有一个表 其中有一列值可以是 rowTypeID 1 2 3 or null 我想编写一个查询 返回其中不包含值 3 的任何行 在此示例中 我想要所有 NULL 行以及所有 1 2 行 我只是不想要值为 3 的行 当前为数据库设置了 Se
  • 将 Gridsearch 中的最佳参数保存在 pandas 数据框中

    我需要将所有参数组合和相应的精度保存在一种 pandas 数据框中 我希望我已经说清楚了 如果我做错了什么 请指出 示例代码是 from sklearn grid search import GridSearchCV import skle
  • 如何检测 ES 模块是否是主模块?

    如何检测 ECMAScript 模块是否为主模块 这对于 CommonJS 模块来说很容易 参见检测是通过 require 调用还是直接通过命令行调用 https stackoverflow com questions 6398196 de
  • Pydantic - 动态创建具有多个基类的模型?

    来自pydantic 文档 https pydantic docs helpmanual io usage models 我的理解是 import pydantic class User pydantic BaseModel id int
  • 如何使用 Entity Framework 和 EntityState.Modified 更新对象的并非每个字段

    我需要更新给定实体对象的除 property1 和 property2 之外的所有字段 有这个代码 HttpPost public ActionResult Add object obj if ModelState IsValid cont
  • NSMutableUrlRequest 吃加号

    我创建 NSMutableUrlRequest 用于将数据发送到服务器 向其中添加所有必需的字段 然后添加用于发送的字符串 如下所示 theRequest setHTTPBody postString dataUsingEncoding N
  • MongoDB 更改流中的resumeAfter 和startAtOperationTime 之间的区别

    在版本 4 中 MongoDB 更改流可以使用两个不同的参数来指定恢复更改流的位置 resumeAfter 一些内部令牌 和startAtOperationTime 时间戳类型 是否可以完全替代resumeAfter with startA
  • MySql 查看性能 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如果您走上使用视图的道路 如何才能确保良好的性能 或者最好不要首先使用视图 而只是将等效项合并到您的 select 语句中 这取决于
  • UITableViewCelldrawInRect iOS7

    您好 我正在尝试使用以下代码在 iOS 7 中的 UITableViewCell 中绘制字符串 void drawRect CGRect rect super drawRect rect CGRect playerNameRect CGRe
  • 我可以严格评估 Java 中存储为字符串的布尔表达式吗?

    我希望能够计算存储为字符串的布尔表达式 如下所示 hello goodbye 100 lt 101 我知道已经有很多这样的问题了 但我问这个问题是因为我已经尝试过这个问题最常见的答案 豆壳 http www beanshell org 并且
  • 如何在添加 endIgnoringInteractionEvents 之前匹配 beginIgnoringInteractionEvents

    我正在使用这两个功能 UIApplication sharedApplication beginIgnoringInteractionEvents and UIApplication sharedApplication endIgnorin
  • BigQuery 连接三个表

    我正在尝试连接 BigQuery 中的三个表 表 1 有一个事件的记录 即每一行是一条记录 表 2 有第二个事件的记录 表 3 有类别名称 我想要生成一个最终表 其中包含按类别和设备平台划分的表 1 和表 2 的计数 但是 每次我运行此命令
  • 将烧瓶 send_file (ajax 响应)中的图像显示到图像标记中

    如何显示来自烧瓶 send file ajax 响应的图像 HTML 文件