使用Flask和JS从服务器下载文件

RishiC

当用户单击特定按钮时,我正在尝试下载文件。该文件是当按下所述按钮时创建的图像。我想要的是,它应该自动将图像下载到客户端的设备上。

我在服务器代码上使用Flask,理想情况下,send_fileFlask功能应在添加Content-Disposition标头时触发此自动下载

在客户端,我有一个JS代码,该代码使用fetch API将带有一些数据的POST请求发送到服务器,该数据用于生成要下载的图像。

这是JS代码:

function make_image(text){
    const json={
        text: text
    };
    const options={
        method: "POST",
        body: JSON.stringify(json),
        headers:{
            'Content-Type':'application/json',
        }
    };

    fetch('/image',options)
        .then(res=>{
            res.json(); //Gives an error: Uncaught (in promise) SyntaxError: Unexpected token � in JSON at position 0
        }).catch(err=>console.log(err));
}

这是服务器上的Python代码:

@app.route('/image',methods=['POST'])
def generate_image():
    cont = request.get_json()
    t=cont['text']
    print(cont['text'])
    name = pic.create_image(t)
    time.sleep(2)
    return send_file(f"{name}.png",as_attachment=True,mimetype="image/png")

但是什么也没发生。图像未下载。但是,该映像正在服务器上创建,并且未损坏

我该如何解决?还有其他方法可以做我想做的事吗?

RishiC

由于@clockwatcher提到了一个不同的问题,因此我使用该download.js模块来处理图像的下载。

所以我的JS代码现在看起来像这样:

function make_image(text){
    const json={
        text: text
    };
    const options={
        method: "POST",
        body: JSON.stringify(json),
        headers:{
            'Content-Type':'application/json',
        }
    };

    fetch('/image',options)
        .then(res=>{
            return res.blob();
        }).then(blob=>{
            download(blob)
        }).catch(err=>console.log(err));
}

以及html中的script标签的附加内容:

<script src="https://cdnjs.cloudflare.com/ajax/libs/downloadjs/1.4.8/download.min.js"></script>

无需更改Python服务器代码。

现在可以使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Java从服务器下载文件

来自分类Dev

从服务器下载文件(不下载?)

来自分类Dev

在Android中使用IntentService从服务器下载文件

来自分类Dev

使用FtpWebResponse下载文件-即使从ftp服务器中删除文件,也可以下载文件?

来自分类Dev

使用angularjs从服务器下载文件

来自分类Dev

尝试使用angularJS和C#WebAPI从服务器下载文件

来自分类Dev

使用Swift从服务器下载文件

来自分类Dev

使用Flask上传和下载文件

来自分类Dev

如何从服务器下载文件(sso和https)

来自分类Dev

使用ASP MVC从远程服务器下载文件

来自分类Dev

从基于Flask的Python服务器下载文件

来自分类Dev

从服务器Laravel和reactjs下载文件

来自分类Dev

使用Vue.js和Python Flask下载文件

来自分类Dev

Shell脚本-如何进入远程服务器并下载文件和保护密码

来自分类Dev

从服务器下载文件(不下载?)

来自分类Dev

使用FtpWebResponse下载文件-即使从ftp服务器中删除文件,也可以下载文件?

来自分类Dev

从服务器以html下载文件

来自分类Dev

从服务器上载和下载文件而无需提供密码

来自分类Dev

从FTP服务器下载文件时损坏文件

来自分类Dev

使用WinSCP和get命令从Unix服务器下载文件

来自分类Dev

通过脚本从文件服务器下载文件

来自分类Dev

使用ASP MVC从远程服务器下载文件

来自分类Dev

从基于Flask的Python服务器下载文件

来自分类Dev

从服务器文件夹下载文件

来自分类Dev

使用scp从服务器下载文件时出错

来自分类Dev

在 Firefox 和 IE 上从服务器下载文件

来自分类Dev

不使用 JSch 从 SFTP 服务器下载文件

来自分类Dev

使用vuejs从php服务器下载文件

来自分类Dev

如何从服务器下载文件并在 Node.js 中同步重命名?

Related 相关文章

热门标签

归档