fleaphp 上传文件多文件多类型上传 生成jpg缩略图

  1. /*-------------------------    
  2.     上传文件
  3. 本程序功能:多文件多类型上传,凡是遇到图片,就生成jpg缩略图,文件与原始图片保存在同一目录下,
  4. 返回:一个数组
  5.     array(
  6.         [files] =>array(
  7.                       [0] => doc
  8.                     )
  9.         [pics] =>array(
  10.                       [0] => jpg,
  11.                       [1] => png
  12.                     )      
  13.     )
  14. $num:图片计数用,放在文件的名字中用
  15. $input_file_name:前台的<input type=file>中的name;
  16. ---------------------------*/
  17.     function _uploadFiles($input_file_name,$time) {//可传一个或多个
  18.     
  19.         $num = 0;//多文件上传时的计数器    //
  20.         $prefix = date('ym',$time);
  21.         $fileDir = FLEA::getAppInf('absPath')  . DS .'sale'. DS .'u'. DS . 'f' . DS . $prefix;//这是要上传到的目录,可自己定义
  22.         $thumbDir = FLEA::getAppInf('absPath') . DS .'sale'. DS .'u'. DS . 't' . DS . $prefix;
  23.         //dump($fileDir);exit;
  24.         // 创建需要的目录
  25.         FLEA::loadHelper('file');
  26.         mkdirs($fileDir);
  27.         mkdirs($thumbDir);
  28.         
  29.         //这三项 提示框中用到
  30.         $allowExts = '.jpg/.png/.gif/.pdf/.doc/.html';//当是允许上传的文件类型时
  31.         $picExts = '.jpg/.png/.gif';//当是图片类型时
  32.         $maxSize =2000*1024; // 2000KB
  33.     
  34.         FLEA::loadClass('FLEA_Helper_FileUploader');
  35.         $uploader =& new FLEA_Helper_FileUploader();
  36.     //dump($uploader);exit();
  37.         $files = & $uploader->getFiles();
  38.         foreach ($files as $file) {    
  39.             if (!$uploader->isFileExist($input_file_name.$num)) {
  40.                 //exit($input_file_name.$num);
  41.                 echo "<script>alert('你有文件或图片上传框没有选择上传,请到相应的修改页面进行修改上传')</script>";
  42.                 //js_alert('你有文件或图片上传框没有上传,请到相应的修改页面进行修改上传,', '', $_SERVER[HTTP_REFERER]);
  43.                 ///exit;
  44.             }
  45.             if (!$file->check($allowExts,$maxSize)) {
  46.                 js_alert("上传的文件类型不符或者超过了大小限制,允许:{$allowExts}文件,单个大小不大于{$maxSize}",'',$_SERVER[HTTP_REFERER]);
  47.                 return false;
  48.             }
  49.             
  50.             if($file->check($picExts)){
  51.                 $num++;
  52.                 // 文件名根据当前时间和上传文件的临时文件名生成,确保不会产生重复的文件名
  53.                 $basename = $_COOKIE['id']."_".$time."_".$num;
  54.                 $fileFilename =  $basename . '.'.$file->getExt();
  55.                 $thumbFilename = 'small_' . $basename . '.jpg';
  56.                 $arr_Exts['pics'][] = $file->getExt();//可返回后缀名
  57.                 // 生成缩略图(220 x 220 像素大小)
  58.                 FLEA::loadHelper('image');
  59.                 $image =& FLEA_Helper_Image::createFromFile($file->getTmpName(), $file->getExt());
  60.                 $image->crop(100, 100, truetrue);
  61.                 $image->saveAsJpeg($thumbDir . DS . $thumbFilename);
  62.                 $image->destory();
  63.             } else {
  64.                 $basename = $_COOKIE['id']."_".$time;
  65.                 $fileFilename =  $basename . '.'.$file->getExt();
  66.                 $arr_Exts['files'][] = $file->getExt();//可返回后缀名
  67.             }
  68.         
  69.             // 保存原始文件    
  70.             $file->move($fileDir . DS . $fileFilename);
  71.             chmod($fileDir . DS . $fileFilename,0777);
  72.             
  73.         }
  74.         return $arr_Exts;
  75.     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值