详解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 相关文章推荐
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
Python使用random和tertools模块解一些经典概率问题
Jan 28 Python
简单介绍Python的Tornado框架中的协程异步实现原理
Apr 23 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
Python图像灰度变换及图像数组操作
Jan 27 Python
python 获取当天每个准点时间戳的实例
May 22 Python
python调用并链接MATLAB脚本详解
Jul 05 Python
Python startswith()和endswith() 方法原理解析
Apr 28 Python
keras之权重初始化方式
May 21 Python
在Tensorflow中实现leakyRelu操作详解(高效)
Jun 30 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
pytorch简介
Nov 11 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获取网络上文件
2006/10/09 PHP
PHP里的中文变量说明
2011/07/23 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
代码生成器 document.write()
2007/04/15 Javascript
javascript 写类方式之三
2009/07/05 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
2017/01/04 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
Django返回json数据用法示例
2016/09/18 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
优秀大学生求职自荐信范文
2014/04/19 职场文书
英文推荐信格式范文
2014/05/09 职场文书
会计岗位工作总结
2015/08/12 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
基于Redis的List实现特价商品列表功能
2021/08/30 Redis