详解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 version 2.7 required, which was not found in the registry
Aug 26 Python
python 查找字符串是否存在实例详解
Jan 20 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
Python logging模块用法示例
Aug 28 Python
python学生信息管理系统(完整版)
Apr 05 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
python 循环数据赋值实例
Dec 02 Python
python实现连连看游戏
Feb 14 Python
PageFactory设计模式基于python实现
Apr 14 Python
python通过函数名调用函数的几种场景
Sep 23 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
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
php中设置多级目录session的问题
2011/08/08 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
jquery 最简单的属性菜单
2009/10/08 Javascript
javascript 函数使用说明
2010/04/07 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
jQuery动态添加
2016/04/07 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
RequireJS用法简单示例
2018/08/20 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
微信小程序轮播图swiper代码详解
2020/12/01 Javascript
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
Zabbix实现微信报警功能
2016/10/09 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
python实现反转部分单向链表
2018/09/27 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
python/sympy求解矩阵方程的方法
2018/11/08 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
Django url 路由匹配过程详解
2021/01/22 Python
美国单身专业人士在线约会网站:EliteSingles
2019/03/19 全球购物
网络工程师职业规划
2014/02/10 职场文书
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python