python post 上传文件_Python通过POST方式上传文件及提交参数到远程服务器

前言

在树莓派开发过程中,因为没有公网IP,为了方便访问获取信息,有时候我们需要将树莓派获取到的一些数据或文件上传到云端服务器。这是一个比较简便的方法。

Python代码

需要用到requests库,没有请先安装。一般python自带

定义一个函数

import requests

def UpFile(Url, FilePath, data):

'''

用于POST上传文件以及提交参数

@ Url 上传接口

@ FilePath 文件路径

@ data 提交参数 {'key':'value', 'key2':'value2'}

'''

files = {'file': open(FilePath, 'rb')}

result = requests.post(Url, files=files, data=data)

return result

调用函数

# 上传接口

url = 'http://blog.fasv.top/test.php'

# 需提交的参数

data = {'key': 'value', 'key2': 'hello'}

# 需上传的文件路径

file = '1.jpg'

r = UpFile(url, file, data)

# 打印返回的值

print(r.text)

PHP后端代码

//获取提交参数

$a = $_POST["key"];

$b = $_POST["key2"];

echo $_FILES['file']['name'];

if (isset($_FILES['file']))

{

//将文件传到服务器根目录中

$Up_Path = $_FILES['file']['name'];

$tmpname = $_FILES['file']['tmp_name'];

//转移临时文件

if(move_uploaded_file($tmpname,$Up_Path)){

echo "上传成功";

}else{

echo "上传失败";

}

}

这个代码为较简易的版本,在实际应用过程中为了安全起见建议限制一些文件格式的上传。

参考来源Python Requests快速入门:Python Requests快速入门

原文Python通过POST方式上传文件及提交参数 - 小A的个人站​blog.fasv.top