美图秀秀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用SAX解析XML的实现代码与问题分析
Aug 22 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
Jun 24 PHP
深入extjs与php参数交互的详解
Jun 25 PHP
PHP截断标题且兼容utf8和gb2312编码
Sep 22 PHP
php时区转换转换函数
Jan 07 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
Mar 17 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
php+mysql删除指定编号员工信息的方法
Jan 14 PHP
php 解析xml 的四种方法详细介绍
Oct 26 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
php实现在线考试系统【附源码】
Sep 18 PHP
Laravel中9个不经常用的小技巧汇总
Apr 16 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
德劲1103的维修打理经验
2021/03/02 无线电
PHP生成带有雪花背景的验证码
2008/09/28 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
tensorflow实现softma识别MNIST
2018/03/12 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
Python换行与不换行的输出实例
2020/02/19 Python
python2和python3哪个使用率高
2020/06/23 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
职业培训师职业生涯规划
2014/02/18 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
导师对论文的学术评语
2015/01/04 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang