美图秀秀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与已存在的Java应用程序集成
Oct 09 PHP
PHP 实现explort() 功能的详解
Jun 20 PHP
PDO预处理语句PDOStatement对象使用总结
Nov 20 PHP
php下pdo的mysql事务处理用法实例
Dec 27 PHP
PHP中使用curl伪造IP的简单方法
Aug 07 PHP
CI(CodeIgniter)模型用法实例分析
Jan 20 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
PHP实现图片的等比缩放和Logo水印功能示例
May 04 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 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 多维数组排序(usort,uasort)
2010/06/30 PHP
php生成随机密码的几种方法
2011/01/17 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
php 修改密码实现代码
2017/05/24 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
JavaScript实现留言板案例
2020/03/17 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python调用java模块SmartXLS和jpype修改excel文件的方法
2015/04/28 Python
将Python代码打包为jar软件的简单方法
2015/08/04 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
Python反转序列的方法实例分析
2018/03/21 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
2020/04/01 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
Keras load_model 导入错误的解决方式
2020/06/09 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
好的演讲稿开场白
2013/12/30 职场文书
学雷锋演讲稿
2014/03/04 职场文书
环保建议书600字
2014/05/14 职场文书
档案接收函格式
2015/01/30 职场文书
古诗之爱国古诗5首
2019/09/20 职场文书
redis实现排行榜功能
2021/05/24 Redis
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL