/**
* 处理post上传的文件;并返回路径
* @param string $path 字符串 保存文件路径示例: /Upload/image/
* @param string $format 文件格式限制
* @param string $maxSize 允许的上传文件最大值 52428800
* @return array 返回ajax的json格式数据
*/
function post_upload($path='file',$format='empty',$maxSize='52428800'){
ini_set('max_execution_time', '0');
// 去除两边的/
$path=trim($path,'/');
// 添加Upload根目录
$path=strtolower(substr($path, 0,6))==='upload' ? ucfirst($path) : 'Upload/'.$path;
// 上传文件类型控制
$ext_arr= array(
'image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp'),
'photo' => array('jpg', 'jpeg', 'png'),
'flash' => array('swf', 'flv'),
'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'),
'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2','pdf')
);
if(!empty($_FILES)){
// 上传文件配置
$config=array(
'maxSize' => $maxSize, // 上传文件最大为50M
'rootPath' => './', //文件上传保存的根路径
'savePath' => './'.$path.'/', //文件上传的保存路径(相对于根路径)
'saveName' => array('uniqid',''), //上传文件的保存规则,支持数组和字符串方式定义
'autoSub' => true, // 自动使用子目录保存上传文件 默认为true
'exts' => isset($ext_arr[$format])?$ext_arr[$format]:'',
);
// 实例化上传
$upload=new \Think\Upload($config);
// 调用上传方法
$info=$upload->upload();
$data=array();
if(!$info){
// 返回错误信息
$error=$upload->getError();
$data['error_info']=$error;
return $data;
}else{
// 返回成功信息
foreach($info as $file){
$data['name']=trim($file['savepath'].$file['savename'],'.');
return $data;
}
}
}
}

最新文章

  1. WebRTC通信流程
  2. miRNA特点
  3. CHAP算法C++实现
  4. UVa12633 Super Rooks on Chessboard(容斥 + FFT)
  5. Cocos2d中使用颜色混合:加算,减算
  6. Spring MVC 接收Json格式参数
  7. gluster 安装配置基本指南
  8. Unity3d 粒子工具注释
  9. Redis配置文件分析
  10. COJN 0585 800604鸡蛋的硬度
  11. ubuntu install express
  12. LFS,编译自己的Linux系统 - 完成准备工作
  13. reids客户端 redis-cli用法
  14. UI 公钥加密
  15. PC远程调试设备(转)
  16. keepalive学习
  17. java note
  18. Struts的前世今身
  19. 微信小程序各类型的自定义组件篇
  20. 【Python】 获取MP3信息replica

热门文章

  1. 微信小程序相关操作
  2. [CSP-S模拟测试]:小奇挖矿2(DP+赛瓦维斯特定理)
  3. 一片关于Bootstarp4的文章
  4. STM32时钟配置方法详解
  5. Aspect-Oriented Programming : Aspect-Oriented Programming with the RealProxy Class
  6. The SDK directory '/home/wangju/gitProject/Automation/D:\Android_SDK' does not exist.
  7. static_cast关键字 dynamic_cast关键字
  8. Ajax跨域(CROS)请求中的Preflighted requests
  9. go递归遍历文件目录
  10. 记一次CentOS7进单用户模式修改密码的失败经历(faild to load SELinux policy freezing)