web下载文件

serve.py
import flask
import os
# 引入操作系统的一个包

app = flask.Flask(__name__)
# 文件名称》》参数

@app.route("/")
def index():
# index函数 返回
    if "fileName" not in flask.request.values:
        # 如果fileName不在values集合里 返回图像文件的名称
        return "图像.jpg"
    else:
        data = b""
        try:
            fileName = flask.request.values.get("fileName")
            if fileName != "" and os.path.exists(fileName):
                # 用操作系统的包检测磁盘当中如果有fileName这个文件,则打开这个文件,读取文件的数据
                fobj = open(fileName, "rb")
                data = fobj.read()
        except Exception as err:
            data = str(err).encode()
        return data


if __name__=="__main__":
    app.run()
client.py
import urllib.parse
import urllib.request
url = "http://127.0.0.1:5000"
try:
    html = urllib.request.urlopen(url)
    # urlopen打开url地址
    html = html.read()
    # 读取html
    fileName = html.decode()
    # 解码html
    print("准备下载:"+fileName)

    # urllib.request.urlretrieve(url, localFile)
    # urllib.request中专门有一个urlretrieve函数是从服务器获取文件保存到本地的

    data = urllib.request.urlopen(url + "?fileName=" + urllib.parse.quote(fileName))
    # 再次打开url,向url传递文件名称
    data = data.read()
    # 读取文件的数据
    fobj = open("download" + fileName, "wb")
    # 本地文件前加download名称
    fobj.write(data)
    # 把数据写到文件中
    fobj.close()
    # 关闭文件
    print("下载完毕:", len(data), "字节")
except Exception as err:
    print(err)

在这里插入图片描述

download图像.jpg是下载的文件
会显示下载完毕

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值