当前位置: 首页 > article >正文

Flask 实现文件下载

Flask 实现文件下载

要通过URL下载 /home/data 目录下的图片,可以使用Python搭建一个简单的HTTP服务器,使用 Flask 框架来实现。

from flask import Flask, send_from_directory, abort
import os

app = Flask(__name__)

# 图片存放的目录
# IMAGE_DIRECTORY = './'
IMAGE_DIRECTORY = '/home/data'

@app.route('/images/<path:filename>', methods=['GET'])
def download_image(filename):
    try:
        # 检查文件是否存在,并返回文件
        return send_from_directory(IMAGE_DIRECTORY, filename)
    except FileNotFoundError:
        abort(404)  # 如果文件未找到,返回404错误

if __name__ == '__main__':
    # 启动Flask应用,默认监听在0.0.0.0:5000
    # app.run(debug=True)
    app.run(host='0.0.0.0', port=1213)
import requests
def download_image(url, save_path):
    try:
        # 发送GET请求
        response = requests.get(url)
        # 检查请求是否成功
        if response.status_code == 200:
            # 将内容写入文件
            with open(save_path, 'wb') as file:
                file.write(response.content)
            print(f'Image downloaded successfully: {save_path}')
        else:
            print(f'Failed to download image. Status code: {response.status_code}')
    except Exception as e:
        print(f'An error occurred: {e}')

if __name__ == '__main__':
    # 替换为您的服务器IP和图片文件名
    # url = "http://xxxx:1213/images/img1.jpeg"
    server_ip = 'xxxx'
    image_filename = 'img1.jpg'
    url = f'http://{server_ip}:1213/images/{image_filename}'
    
    # 设置保存路径
    save_path = f'./down_{image_filename}'

    # 下载图片
    download_image(url, save_path)

import requests

def download_image(url, filepath):
    response = requests.get(url)
    if response.status_code == 200:
        with open(filepath, 'wb') as f:
            f.write(response.content)

download_image("http://xxxx:1213/images/img1.jpeg", "./down_img1.jpg")

参考:
https://blog.csdn.net/yuanjc002/article/details/133633570


http://www.kler.cn/news/324537.html

相关文章:

  • Vue3 项目环境变量配置(Vite)
  • 2024年7月大众点评全国小吃快餐前百名城市分析
  • U盘打开提示要格式化:深度解析、恢复策略与预防之道
  • CSS列表
  • 每天学习一个技术栈 ——【Celery】篇(2)
  • FTP 服务器 linux安装
  • 面试速通宝典——5
  • 解锁免费数据恢复工具的潜力,找回珍贵数据记忆
  • android设计模式的建造者模式,请举例
  • RabbitMQ的各类工作模式介绍
  • SOCKS5代理和HTTP代理哪个快?深度解析两者的速度差异
  • 支持云边协同的「物联网平台+边缘计算底座」
  • tcpdump捕获指定端口的网络流量并实时输出
  • OpenCV_自定义线性滤波(filter2D)应用详解
  • 护眼灯行业分水岭渐显,书客革命性创新成为企业扩容市场的第一动力
  • qt6 使用QPSQL
  • 【k8s】:DevOps 模式详解
  • 物联网系统中模拟温度传感器测温方案
  • 设计模式之享元(Flyweight)模式
  • 设计模式小记:构造器
  • QT九月28日
  • 阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
  • 量化金融中的 AI 革命:LLMs 如何重新定义交易策略
  • .NET 开源的功能强大的人脸识别 API
  • 博客摘录「 GD32的flash读、擦除、写操作」2024年9月2日
  • 前端问答:JavaScript 中的??和|| 有啥不同
  • 小程序电量
  • 阿布量化:基于 Python 的量化交易框架
  • 德克威尔FS系列一体式PROFINET协议模块组态步骤
  • 文件和目录