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
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值