美图秀秀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加速的eAccelerator dll支持文件打包下载
Sep 30 PHP
PHP日期时间函数的高级应用技巧
May 16 PHP
PHP操作xml代码
Jun 17 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
php实现获取文章内容第一张图片的方法
Nov 04 PHP
CodeIgniter删除和设置Cookie的方法
Apr 07 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
Nov 10 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
Mar 21 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
PHP迭代器接口Iterator用法分析
Dec 28 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
PHP使用Redis实现Session共享的实现示例
May 12 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
PHP排序算法的复习和总结
2012/02/15 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
js链表操作(实例讲解)
2017/08/29 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
2018/09/25 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
Python中用Decorator来简化元编程的教程
2015/04/13 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
Python处理Excel文件实例代码
2017/06/20 Python
python——全排列数的生成方式
2020/02/26 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
python Scrapy框架原理解析
2021/01/04 Python
python 实现的车牌识别项目
2021/01/25 Python
土木建筑学生自我评价
2014/01/14 职场文书
酒后驾车标语
2014/06/30 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
华山导游词
2015/02/03 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB
JavaScript中isPrototypeOf函数
2021/11/07 Javascript