详解python上传文件和字符到PHP服务器


Posted in Python onNovember 24, 2017

很多朋友在留言区询问关于python上传文件和字符到服务器的问题,现编针对这个给大家整理了一个解决办法。

上传简单的字符串

def send_str_server(self):
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", 
data=payload)

介绍:payload 为键值对形式的数据,在服务器的数据的显示为

key1=value1&key2=value2

http://httpbin.org/post 为上传的服务器地址

上传文件

def send_image_server(self):
data = {"k1" : "v1"} 
files = {"img" : open("test.png", "rb")} 
r = requests.post("http://httpbin.org/post", data,
files=files)

介绍:data 为键值对形式的数据,为post请求携带的数据

files 中的img表示的是php服务器中对图片的过滤字段,open中第一个参数为图片的地址,第二个参数表示二进制文件写的权限,http://httpbin.org/post是服务器的地址

python post方式 上传文件到php服务器

看了网上很多代码,都没有说如何具体的使用poster,试了两天,终于成功了

通过python调用php实现了文件上传

与大家分享一下:

首先要通过pip安装poster(easy_install 也是一样的):

pip install poster

image.py

#!usr/bin/python
# image.py
# -*- coding=utf-8 -*- 
from poster.encode import multipart_encode
import urllib2
import sys
from urllib2 import Request, urlopen, URLError, HTTPError
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers

register_openers()
f=open(“C:/Users/User/Pictures/Saved Pictures/test1.jpg”, "rb")
#f=open(sys.argv[1], "rb") 使用sys.argv[1]可调用参数 例如 运行 python image.py C:/Users/User/Pictures/Saved Pictures/test1.jpg 
#可将test1.jpg作为参数传入image.py
#"C:/Users/User/Pictures/Saved Pictures/vedio5.jpg"
# headers 包含必须的 Content-Type 和 Content-Length
# datagen 是一个生成器对象,返回编码过后的参数
datagen, headers = multipart_encode({"myFile": f})
# 创建请求对象
request = urllib2.Request("http://localhost/upload_image/upload_image.php", datagen, headers)
try:
response = urllib2.urlopen(request)
print response.read()

except URLError,e:
print e.reason
print e.code
-----

upload_image.php

----
<?php
echo $_FILES['myFile']['name'];
if (isset($_FILES['myFile'])) 
{
$names = $_FILES["myFile"]['name'];
$arr = explode('.', $names);
$name = $arr[0]; //图片名称
$date = date('Y-m-d H:i:s'); //上传日期
$fp= fopen($_FILES['myFile']['tmp_name'], 'rb');
$type = $_FILES['myFile']['type'];
$filename = $_FILES['myFile']['name'];
$tmpname = $_FILES['myFile']['tmp_name'];
//将文件传到服务器根目录的 upload 文件夹中
if(move_uploaded_file($tmpname,$_SERVER['DOCUMENT_ROOT']."/upload/".$filename)){
echo "upload image succeed";
}else{
echo "upload image failed";
}
}
?>

以上就是小编亲测的关于python上传和文件和字符到PHP服务器的代码实现的两种方式,如果大家还有更好的内容可以在下方留言给我们,一起交流一下。

Python 相关文章推荐
解决Python传递中文参数的问题
Aug 04 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
Aug 16 Python
python实现寻找最长回文子序列的方法
Jun 02 Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
django模板加载静态文件的方法步骤
Mar 01 Python
详解Python是如何实现issubclass的
Jul 24 Python
在Python中用GDAL实现矢量对栅格的切割实例
Mar 11 Python
Jupyter Notebook输出矢量图实例
Apr 14 Python
Python startswith()和endswith() 方法原理解析
Apr 28 Python
python数据类型强制转换实例详解
Jun 22 Python
Python 解析简单的XML数据
Jul 24 Python
Python实现矩阵转置的方法分析
Nov 24 #Python
利用Django内置的认证视图实现用户密码重置功能详解
Nov 24 #Python
利用python3随机生成中文字符的实现方法
Nov 24 #Python
Python内置函数 next的具体使用方法
Nov 24 #Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 #Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 #Python
Python内置函数——__import__ 的使用方法
Nov 24 #Python
You might like
php 全文搜索和替换的实现代码
2008/07/29 PHP
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
PHP代码优化技巧小结
2015/09/29 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
Python中使用中文的方法
2011/02/19 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
在vscode中配置python环境过程解析
2019/09/28 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
大学运动会加油稿200字(5篇)
2014/09/27 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
交通事故和解协议书
2015/01/27 职场文书
长江七号观后感
2015/06/11 职场文书
大学生读书笔记大全
2015/07/01 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang