详解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正则匹配查询港澳通行证办理进度示例分享
Dec 27 Python
python连接mysql实例分享
Oct 09 Python
一个基于flask的web应用诞生 组织结构调整(7)
Apr 11 Python
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
Python中面向对象你应该知道的一下知识
Jul 10 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
pyinstaller还原python代码过程图解
Jan 08 Python
详解Django3中直接添加Websockets方式
Feb 12 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 07 Python
python-jwt用户认证食用教学的实现方法
Jan 19 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程序员应该了解MongoDB的五件事
2013/06/03 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
python脚本替换指定行实现步骤
2017/07/11 Python
Python自定义函数定义,参数,调用代码解析
2017/12/27 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
商场中秋节广播稿
2014/01/17 职场文书
行政助理的岗位职责
2014/02/18 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
文艺部部长竞选稿
2015/11/21 职场文书
vue实现拖拽交换位置
2022/04/07 Vue.js
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android
Java 多线程并发FutureTask
2022/06/28 Java/Android