客户端:

ob_clean();
ob_start();
readfile("D:/44.jpg");
$logo = ob_get_clean();
$pararmArr = array(
  'm_id'=>'10',
  'm_logo'=>base64_encode($logo),
);
$g = json_encode($pararmArr);
$b = $client->addUserLogo($g);

读取二进制然后base64编码,最后json传输。

服务端:

$paramsArr = json_decode($params,true);
$m_id = (isset($paramsArr['m_id']) AND $paramsArr['m_id'] != '') ? $paramsArr['m_id'] : null;
$m_logo = (isset($paramsArr['m_logo']) AND $paramsArr['m_logo'] != '') ?$paramsArr['m_logo'] : null;
if(empty($paramsArr) OR $m_id === null OR $m_logo === null){
return json_encode(array('error'=>'empty params!'));
}
unset($paramsArr);
$this->_createModel(1);
if($this->activeModel === null){
return json_encode(array('error'=>'not exist model!'));
}
$m_logo_path = $this->logo_pre .'/'.date("Y").'/'.date("m").'/'.date("d").'/'.$m_id.'.jpg';
@mkdir($this->logo_pre .'/'.date("Y").'/'.date("m").'/'.date("d"),0777,true);
if(file_exists($m_logo_path)){
unlink($m_logo_path);
}
$flag = file_put_contents($m_logo_path,base64_decode($m_logo));
$parmas = array(
'm_id'=>$m_id,
'm_logo_path'=>$m_logo_path,
);
if($flag === false){
return json_encode(array('error'=>'add failure!'));
}
$a = $this->activeModel->updateLogo($parmas);

只要反解析就行了,注意目录的创建~以及写权限,最后入库。

webservices上传文件的更多相关文章

  1. 上传文件,使用FormData进行Ajax请求,jsoncallback跨域

    通过传统的form表单提交的方式上传文件: <form id= "uploadForm" action= "http://localhost:8080/cfJAX_ ...

  2. IE8/9 JQuery.Ajax 上传文件无效

    IE8/9 JQuery.Ajax 上传文件有两个限制: 使用 JQuery.Ajax 无法上传文件(因为无法使用 FormData,FormData 是 HTML5 的一个特性,IE8/9 不支持) ...

  3. 三种上传文件不刷新页面的方法讨论:iframe/FormData/FileReader

    发请求有两种方式,一种是用ajax,另一种是用form提交,默认的form提交如果不做处理的话,会使页面重定向.以一个简单的demo做说明: html如下所示,请求的路径action为"up ...

  4. asp.net mvc 上传文件

    转至:http://www.cnblogs.com/fonour/p/ajaxFileUpload.html 0.下载 http://files.cnblogs.com/files/fonour/aj ...

  5. app端上传文件至服务器后台,web端上传文件存储到服务器

    1.android前端发送服务器请求 在spring-mvc.xml 将过滤屏蔽(如果不屏蔽 ,文件流为空) <!-- <bean id="multipartResolver&q ...

  6. .net FTP上传文件

    FTP上传文件代码实现: private void UploadFileByWebClient() { WebClient webClient = new WebClient(); webClient ...

  7. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  8. 前端之web上传文件的方式

    前端之web上传文件的方式 本节内容 web上传文件方式介绍 form上传文件 原生js实现ajax上传文件 jquery实现ajax上传文件 form+iframe构造请求上传文件 1. web上传 ...

  9. Django session cookie 上传文件、详解

    session 在这里先说session 配置URL from django.conf.urls import patterns, include, url from django.contrib i ...

随机推荐

  1. DF学Mysql(三)——Mysql数据类型

    Mysql数据类型分为:整数类型.浮点数类型.定点数类型日期与时间类型字符串类型二进制类型 整数类型 字节数 无符号数取值范围 有符号数取值范围TINYINT 1 0-255 -128-127SMAL ...

  2. ExtJs之Ext.util.ClickRepeater

    <!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...

  3. poj 2975 Nim 博弈论

    令ans=a1^a2^...^an,如果需要构造出异或值为0的数, 而且由于只能操作一堆石子,所以对于某堆石子ai,现在对于ans^ai,就是除了ai以外其他的石子 的异或值,如果ans^ai< ...

  4. BZOJ 1015: [JSOI2008]星球大战starwar 并查集

    1015: [JSOI2008]星球大战starwar Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝 ...

  5. Maven的配置文件pom.xml

    Maven的配置文件pom.xml 简介: 什么是POM? POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml. ...

  6. lintcode:形状工厂

    题目 工厂模式是一种常见的设计模式.实现一个形状工厂 ShapeFactory 来创建不同的形状类.这里我们假设只有三角形,正方形和矩形三种形状. 样例 ShapeFactory sf = new S ...

  7. java中静态代理,动态代理知识的补充

    文章转载自:http://blog.csdn.net/jialinqiang/article/details/8950989 一.Java动态代理 相对于静态代理的代理类在编译时生成(.class文件 ...

  8. java中静态代理跟动态代理之间的区别

    文章转载于:http://www.cnblogs.com/xiaoluo501395377/p/3383130.html 在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另 ...

  9. 好玩的算法(JS版)

    1.字符串反转 'cba'.split('').reverse().join(''); 2.在数组最后一位添加一项 array[array.length]=(new value);

  10. TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE

    TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别 TASK_INTERRUPT ...