前面一章写过一篇简单http服务器搭建的文章,此篇为子类(手动滑稽),大牛绕道.
关于http文件传输要再不同的服务器之间链接并传输文件遇到的问题并解决方法。
主要写GET方法到server端下载文件
server:
def do_GET(self):
if remote_file :#remote_file是本地目录下的所有文件路径的集合,比如/home/ly/server/trojan/*
file_path=remote_file.pop()
f=open(file_path,"rb")
self.protocal_version = "HTTP/1.1"
self.send_response(200)
self.send_header("Content-Type","multipart/form-data")#发现不加头的话传输过去的文件总会少了100+B
self.send_header("Content-Disposition",file_path)#这是利用http头传输文件名,因为client端保存下来的文件不可能随便命名,要和原文件保持一致
self.end_headers()
self.wfile.write(f.read())
f.close()
print remote_file
return
client:
#coding=utf-8
import requests
import os
url = "http://172.16.1.101:8080"
r = requests.get(url,stream=True)
_,file_name=os.path.split(r.headers.get("Content-Disposition")) #获取HTTP头中的文件名
dir_name="/home/ly/new"
path=os.path.join(dir_name,file_name)
with open(path,"wb") as f:
for chunk in r.iter_content(chunk_size=512)
if chunk :
f.write(chunk)