详解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 13 Python
谈谈Python进行验证码识别的一些想法
Jan 25 Python
Python2.7简单连接与操作MySQL的方法
Apr 27 Python
Python tornado队列示例-一个并发web爬虫代码分享
Jan 09 Python
python模仿网页版微信发送消息功能
Feb 24 Python
Python统计单词出现的次数
Apr 04 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
Tensorflow模型实现预测或识别单张图片
Jul 19 Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 Python
python 简单的调用有道翻译
Nov 25 Python
python中实现栈的三种方法
Dec 19 Python
python 经纬度求两点距离、三点面积操作
Jun 03 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
用mysql内存表来代替php session的类
2009/02/01 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
yii中widget的用法
2014/12/03 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
python实现键盘输入的实操方法
2019/07/16 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
几个判断型的面试题
2012/07/03 面试题
辅导员评语
2014/05/04 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
读后感作文评语
2014/12/25 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书
JS不要再到处使用绝对等于运算符了
2021/04/30 Javascript
Java界面编程实现界面跳转
2022/06/16 Java/Android