向web服务器下载文件

web服务器向客户端发送文件

Web服务器读取一个文件的二进制数据,把这组二进制数据发送个客户端,服务器发送给客户端的HTML文档的本质也是二进制。客户端使用以下代码读文件

response = urllib.request.urlopen(url + "?" + urllib.parse.quote(fileName))
data = response.read()

server.py

import flask
app = flask.Flask(__name__)

@app.route('/', methods=['GET','POST'])
def index():
    if not "fileName" in flask.request.values:
        s = "test.jpg"
        return s
    else:
        fileName = flask.request.values.get("fileName")
        f = open(fileName, "rb")
        data = f.read()
        f.close()
        return data

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

clent.py

import urllib.request
import urllib.parse

url = "http://127.0.0.1:5000"
response = urllib.request.urlopen(url)
data = response.read()
fileName = data.decode('utf-8')
response = urllib.request.urlopen(url + "?" + urllib.parse.quote(fileName))
data = response.read()
f = open("dowmload" + fileName, "wb")
f.write(data)
f.close()
print(fileName, len(data))

 

静态文件夹文件下载

server.py

import flask
app = flask.Flask(__name__)

@app.route('/', methods=['GET','POST'])
def index():
    return "Image"

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

client.py

import urllib.request
import urllib.parse

url = "http://127.0.0.1:5000/static/test.jpg"
response = urllib.request.urlopen(url)
data = response.read()
f = open("dowmload test.jpg", "wb")
f.write(data)
f.close()
print("downloaded", len(data), "bytes")

 

posted @ 2024-05-19 00:58  JJJhr  阅读(11)  评论(0编辑  收藏  举报