详解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完成FizzBuzzWhizz问题(拉勾网面试题)示例
May 05 Python
python如何实现excel数据添加到mongodb
Jul 30 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
Jul 04 Python
Appium+Python自动化测试之运行App程序示例
Jan 23 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
Python学习笔记之集合的概念和简单使用示例
Aug 22 Python
解决os.path.isdir() 判断文件夹却返回false的问题
Nov 29 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
Python无头爬虫下载文件的实现
Apr 02 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
scrapy头部修改的方法详解
Dec 06 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
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
PHP Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
PHP 配置后台登录以及模板引入
2017/01/24 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
Python functools模块学习总结
2015/05/09 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
PyQt5每天必学之关闭窗口
2018/04/19 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
为什么说python适合写爬虫
2020/06/11 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
Reebok官方旗舰店:美国知名健身品牌锐步
2019/01/07 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
某公司.Net方向面试题
2014/04/24 面试题
学校运动会开幕演讲稿
2014/01/04 职场文书
合作意向书模板
2014/03/31 职场文书
三峡导游词
2015/01/31 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android