美图秀秀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 相关文章推荐
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 PHP
我的php学习笔记(毕业设计)
Feb 21 PHP
浅析PHP递归函数返回值使用方法
Feb 18 PHP
PHP session_start()问题解疑(详细介绍)
Jul 05 PHP
PHP中spl_autoload_register函数的用法总结
Nov 07 PHP
php生成随机密码自定义函数代码(简单快速)
May 10 PHP
PHP 错误处理机制
Jul 06 PHP
php基础教程
Aug 26 PHP
完美利用Yii2微信后台开发的系列总结
Jul 18 PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
Mar 18 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 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
PHP实现获取图片颜色值的方法
2014/07/11 PHP
phpstorm编辑器乱码问题解决
2014/12/01 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
详解微信小程序中组件通讯
2018/10/30 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
javascript自定义加载loading效果
2020/09/15 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
通过C++学习Python
2015/01/20 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
python tkinter实现连连看游戏
2020/11/16 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
旅游个人求职信范文
2014/01/30 职场文书
企业新年寄语
2014/04/04 职场文书
父母对孩子说的话
2014/04/12 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
2014年行政部工作总结
2014/11/19 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
生活小常识广播稿
2015/08/19 职场文书
python 详解turtle画爱心代码
2022/02/15 Python