前言
在树莓派开发过程中,因为没有公网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 = 'https://blog.lipux.cn/test.php'
# 需提交的参数
data = {'key': 'value', 'key2': 'hello'}
# 需上传的文件路径
file = '1.jpg'
r = UpFile(url, file, data)
# 打印返回的值
print(r.text)
PHP后端代码
<?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快速入门:https://blog.csdn.net/iloveyin/article/details/21444613