直接利用文件传输 时间在10毫秒以内

1、客户端代码

#coding:utf-8

import requests
url = "xxxxx"
str000='/home/aqonvs.jpg'
newname = str000.split('/')
print newname[len(newname)-1]
files = {'file':(newname,open('/home/aqonvs.jpg','rb'),'image/jpg')}
r = requests.post(url,files = files)
result = r.text
print result

2、服务端代码

#coding:utf-8
from flask import request, Flask
import time
import os
app = Flask(__name__)

@app.route("/", methods=['POST'])
def get_frame():
    start_time = time.time()
    upload_file = request.files['file']
    old_file_name = upload_file.filename
    if upload_file:
        file_path = os.path.join('/home/local/upload/', old_file_name)
        upload_file.save(file_path)
        print "success"
        print('file saved to %s' % file_path)
        duration = time.time() - start_time
        print('duration:[%.0fms]' % (duration*1000))
        return 'success'
    else:
        return 'failed'


if __name__ == "__main__":
    app.run("127.0.0.1", port=5000)

 

此方法确实很快啊,比base64位格式快很多。我在自己Win10电脑上部署了服务端,本机电脑和其他电脑都可以访问,能快速传图片。但是我把同样的服务端程序部署到Ubuntu16.04服务器上,服务器和其他电脑访问都出错,出现400错误如下所示:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>The browser (or proxy) sent a request that this server could not understand.</p>

 

搞了很久都还没有解决,各位大佬有没有遇到过这个问题啊