python实现文件下载上传

一、文件下载到本地

py 复制代码
import requests
if __name__ == '__main__':
     response = requests.get("https://dfcv-shop.oss-cn-hangzhou.aliyuncs.com/dfcv-shop0177bf6b34ee46c68be412d04654439c.jpg")
     local_filename = "./dfcv-shop0177bf6b34ee46c68be412d04654439c.jpg"
     if response.status_code == 200:
         # 将文件内容写入本地文件
         with open(local_filename, 'wb') as file:
             file.write(response.content)
         print(f"文件 '{local_filename}' 下载成功!")
     else:
         print("下载失败")

二、服务端对外提供下载资源

py 复制代码
from flask import Flask, send_file

app = Flask(__name__)

@app.route('/download')
def download_file():
    file_path = 'E:\code\ZhkCode\Dockerfile'  # 替换为你要下载的文件路径
    return send_file(file_path, as_attachment=True)

if __name__ == '__main__':
    app.run(debug=True)

三、上传资源

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <title>文件上传示例</title>
</head>
<body>
    <h2>上传文件</h2>
    <form method="POST" action="/upload" enctype="multipart/form-data">
        <input type="file" name="file">
        <input type="submit" value="上传">
    </form>
</body>
</html>
py 复制代码
from flask import Flask, render_template, request

app = Flask(__name__)

# 允许上传的文件类型
ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'}

# 检查文件扩展名是否允许上传
def allowed_file(filename):
    return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS

@app.route('/')
def upload_form():
    return render_template('index.html')

@app.route('/upload', methods=['POST'])
def upload_file():
    if 'file' not in request.files:
        return 'No file part'

    file = request.files['file']

    if file.filename == '':
        return 'No selected file'

    if file and allowed_file(file.filename):
        # 保存上传的文件到指定路径
        file.save('F:/uploads/' + file.filename)
        return 'File uploaded successfully'
    else:
        return 'Invalid file extension'

if __name__ == '__main__':
    app.run(debug=True)
相关推荐
猪哥-嵌入式3 分钟前
Go语言实战教学:从一个混合定时任务调度器(Crontab)深入理解Go的并发、接口与工程哲学
开发语言·后端·golang
AndrewHZ15 分钟前
【图像处理基石】多光谱图片去噪入门:从概念到Python实操
图像处理·python·计算机视觉·图像去噪·多光谱
互联网中的一颗神经元20 分钟前
小白python入门 - 6. Python 分支结构——逻辑决策的核心机制
开发语言·数据库·python
妄小闲34 分钟前
企业网站模版 免费PHP企业网站源码模板
开发语言
AhriProGramming1 小时前
Python学习快速上手文章推荐(持续更新)
开发语言·python·学习·1024程序员节
IDOlaoluo1 小时前
nginx-1.9.1.tar.gz 安装教程(详细步骤,从解压到启动)
开发语言·python
加油吧zkf1 小时前
生成式对抗网络 GAN:从零理解生成对抗网络的原理与魅力
人工智能·python·gan
新子y2 小时前
【小白笔记】将十进制数(Decimal)转换为二进制数(Binary),并计算二进制表示中“1”的个数
笔记·python
赵杰伦cpp2 小时前
C++的继承机制精讲
java·开发语言·c++·后端
炘东5922 小时前
让Pycharm的Terminal(终端)进入创建好的虚拟环境
ide·python·pycharm