美图秀秀web开放平台--PHP流式上传和表单上传示例分享


Posted in PHP onJune 22, 2014

废话少说,直接上代码:

<?php
/**
 * Note:for octet-stream upload
 * 这个是流式上传PHP文件
 * Please be amended accordingly based on the actual situation
 */
$post_input = 'php://input';
$save_path = dirname(__FILE__);
$postdata = file_get_contents($post_input);
if (isset($postdata) && strlen($postdata) > 0) {
 $filename = $save_path . '/' . uniqid() . '.jpg';
 $handle = fopen($filename, 'w+');
 fwrite($handle, $postdata);
 fclose($handle);
 if (is_file($filename)) {
  echo 'Image data save successed,file:' . $filename;
  exit ();
 } else {
  die ('Image upload error!');
 }
} else {
 die ('Image data not detected!');
}
<?php
/**
 * Note:for multipart/form-data upload
 * 这个是标准表单上传PHP文件
 * Please be amended accordingly based on the actual situation
 */
if (!$_FILES['Filedata']) {
 die ('Image data not detected!');
}
if ($_FILES['Filedata']['error'] > 0) {
 switch ($_FILES ['Filedata'] ['error']) {
  case 1 :
   $error_log = 'The file is bigger than this PHP installation allows';
   break;
  case 2 :
   $error_log = 'The file is bigger than this form allows';
   break;
  case 3 :
   $error_log = 'Only part of the file was uploaded';
   break;
  case 4 :
   $error_log = 'No file was uploaded';
   break;
  default :
   break;
 }
 die ('upload error:' . $error_log);
} else {
 $img_data = $_FILES['Filedata']['tmp_name'];
 $size = getimagesize($img_data);
 $file_type = $size['mime'];
 if (!in_array($file_type, array('image/jpg', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/gif'))) {
  $error_log = 'only allow jpg,png,gif';
  die ('upload error:' . $error_log);
 }
 switch ($file_type) {
  case 'image/jpg' :
  case 'image/jpeg' :
  case 'image/pjpeg' :
   $extension = 'jpg';
   break;
  case 'image/png' :
   $extension = 'png';
   break;
  case 'image/gif' :
   $extension = 'gif';
   break;
 }
}

if (!is_file($img_data)) {
 die ('Image upload error!');
}

// 图片保存路径,默认保存在该代码所在目录(可根据实际需求修改保存路径)
$save_path = dirname(__FILE__);
$uinqid = uniqid();
$filename = $save_path . '/' . $uinqid . '.' . $extension;
$result = move_uploaded_file($img_data, $filename);
if (!$result || !is_file($filename)) {
 die ('Image upload error!');
}
echo 'Image data save successed,file:' . $filename;
exit ();

备注:美图秀秀提供两个上传接口供测试
一个是octet-stream方式上传,地址为:http://imgkaka.meitu.com/xiuxiu_web_pic_save.php
另一个是multipart/form-data方式上传,地址为:http://web.upload.meitu.com/image_upload.php
表单名称为"upload_file"。

PHP 相关文章推荐
php 分页类 扩展代码
Jun 11 PHP
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
php中使用url传递数组的方法
Feb 11 PHP
header与缓冲区之间的深层次分析
Jul 30 PHP
PHP反射机制原理与用法详解
Feb 15 PHP
PHP解决中文乱码
Apr 28 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
PHP实现用户登录的案例代码
May 10 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 PHP
PHP基于curl模拟post提交json数据示例
Jun 22 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 PHP
解决cPanel无法安装php5.2.17
Jun 22 #PHP
destoon设置自定义搜索的方法
Jun 21 #PHP
destoon后台网站设置变成空白的解决方法
Jun 21 #PHP
destoon常用的安全设置概述
Jun 21 #PHP
destoon安全设置中需要设置可写权限的目录及文件
Jun 21 #PHP
destoon整合ucenter后注册页面不跳转的解决方法
Jun 21 #PHP
destoon整合UCenter图文教程
Jun 21 #PHP
You might like
支付宝服务窗API接口开发php版本
2016/07/20 PHP
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
django允许外部访问的实例讲解
2018/05/14 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
简单的命令查看安装的python版本号
2020/08/28 Python
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
Java面试题及答案
2012/09/08 面试题
年会活动策划方案
2014/01/23 职场文书
数学教学随笔感言
2014/02/17 职场文书
大学生入党积极分子党校学习思想汇报
2014/10/25 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
大明湖导游词
2015/02/03 职场文书
2015年复活节活动总结
2015/02/27 职场文书
银行催款通知书
2015/04/17 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
交通安全教育心得体会
2016/01/15 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
Java无向树分析 实现最小高度树
2022/04/09 Javascript
原生JS实现分页
2022/04/19 Javascript