详解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 相关文章推荐
python3使用urllib示例取googletranslate(谷歌翻译)
Jan 23 Python
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
Python解析树及树的遍历
Feb 03 Python
Python环境下搭建属于自己的pip源的教程
May 05 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
Jul 20 Python
python根据url地址下载小文件的实例
Dec 18 Python
Pandas库之DataFrame使用的学习笔记
Jun 21 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
python中struct模块之字节型数据的处理方法
Aug 27 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 Python
Python中npy和mat文件的保存与读取
Apr 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中session使用示例
2014/03/29 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
php curl发送请求实例方法
2019/08/01 PHP
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
win7安装python生成随机数代码分享
2013/12/27 Python
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
python中的break、continue、exit()、pass全面解析
2017/08/05 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
html2 canvas生成清晰的图片实现打印功能
2019/09/23 HTML / CSS
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
使用索引有什么好处
2016/07/27 面试题
市场营销专业应届生自荐信
2014/06/19 职场文书
党员十八大心得体会
2014/09/12 职场文书
交通事故协议书范本
2016/03/19 职场文书
MySQL学习之基础命令实操总结
2022/03/19 MySQL
公历12个月名称的由来
2022/04/12 杂记