热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ThinkPHP文件上传

FileAction.class.php<?phpclassFileActionextendsAction{functionindex(){$fileM(&#39;file&#39;);$list$file->select();$this->assign(...

FileAction.class.php

  1. class FileAction extends Action{ 
  2.     function index(){ 
  3.         $file=M(&#39;file&#39;); 
  4.         $list=$file->select(); 
  5.         $this->assign(&#39;filelist&#39;,$list); 
  6.         $this->display();    
  7.     }     
  8.     
  9.     function upload(){ 
  10.         //文件上传地址提交给他,并且上传完成之后返回一个信息,让其写入数据库    
  11.         if(emptyempty($_FILES)){ 
  12.             $this->error(&#39;必须选择上传文件&#39;);    
  13.         }else
  14.             $a=$this->up(); 
  15.             if(isset($a)){ 
  16.                 //写入数据库的自定义c方法 
  17.                 if($this->c($a)){ 
  18.                     $this->success(&#39;上传成功&#39;);    
  19.                 } 
  20.                 else
  21.                     $this->error(&#39;写入数据库失败&#39;);    
  22.                 } 
  23.             }else
  24.                 $this-error(&#39;上传文件异常,请与系统管理员联系&#39;);    
  25.             } 
  26.         } 
  27.     } 
  28.     
  29.     private function c($data){ 
  30.         $file=M(&#39;file&#39;); 
  31.         $num    =    &#39;0&#39;
  32.         for($i = 0; $i < count($data)-1; $i++) { 
  33.             $data[&#39;filename&#39;]=$data[$i][&#39;savename&#39;];            
  34.            if$file->data($data)->add()) 
  35.            { 
  36.                $num++; 
  37.            } 
  38.         } 
  39.         if($num==count($data)-1) 
  40.         { 
  41.             return true;    
  42.         }else 
  43.         { 
  44.             return false; 
  45.         } 
  46.         
  47.     } 
  48.     
  49.     private function up(){ 
  50.         //完成与thinkphp相关的,文件上传类的调用    
  51.         import(&#39;@.Org.UploadFile&#39;);//将上传类UploadFile.class.php拷到Lib/Org文件夹下 
  52.         $upload=new UploadFile(); 
  53.         $upload->maxSize=&#39;1000000&#39;;//默认为-1,不限制上传大小 
  54.         $upload->savePath=&#39;./Public/Upload/&#39;;//保存路径建议与主文件平级目录或者平级目录的子目录来保存    
  55.         $upload->saveRule=uniqid;//上传文件的文件名保存规则 
  56.         $upload->uploadReplace=true;//如果存在同名文件是否进行覆盖 
  57.         $upload->allowExts=array(&#39;jpg&#39;,&#39;jpeg&#39;,&#39;png&#39;,&#39;gif&#39;);//准许上传的文件类型 
  58.         $upload->allowTypes=array(&#39;image/png&#39;,&#39;image/jpg&#39;,&#39;image/jpeg&#39;,&#39;image/gif&#39;);//检测mime类型 
  59.         $upload->thumb=true;//是否开启图片文件缩略图 
  60.         $upload->thumbMaxWidth=&#39;300,500&#39;
  61.         $upload->thumbMaxHeight=&#39;200,400&#39;
  62.         $upload->thumbPrefix=&#39;s_,m_&#39;;//缩略图文件前缀 
  63.         $upload->thumbRemoveOrigin=1;//如果生成缩略图,是否删除原图 
  64.         
  65.         if($upload->upload()){ 
  66.             $info=$upload->getUploadFileInfo(); 
  67.             return $info
  68.         }else
  69.             $this->error($upload->getErrorMsg());//专门用来获取上传的错误信息的    
  70.         }    
  71.     } 
  72.     
  73. ?> 

模板文件index.html

  1. <html> 
  2.  
  3. <body> 
  4.  
  5. <volist name="filelist" id="vo"> 
  6.   小图:<img src="__PUBLIC__/upload/s_{$vo[&#39;filename&#39;]}" /><br /> 
  7.   大图:<img src="__PUBLIC__/upload/m_{$vo[&#39;filename&#39;]}" /><br /> 
  8. volist> 
  9.  
  10. <form action="__URL__/upload" method="post" enctype="multipart/form-data"> 
  11.     <input type="file" name="file[]" /><br /> 
  12.     <input type="file" name="file[]" /><br /> 
  13.     <input type="file" name="file[]" /><br /> 
  14.     <input type="submit" value="上传" /> 
  15. form> 
  16.  
  17. body> 
  18. html> 

推荐阅读
  • 本文详细探讨了JavaScript中的作用域链和闭包机制,解释了它们的工作原理及其在实际编程中的应用。通过具体的代码示例,帮助读者更好地理解和掌握这些概念。 ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 本文详细介绍了在腾讯云服务器上配置 phpMyAdmin 的方法,包括安装、配置和解决常见问题。通过这些步骤,您可以轻松地在腾讯云环境中部署并使用 phpMyAdmin。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • 本文详细介绍了SDCMS中的全局标签和循环标签。全局标签是在任何模板页面中均可调用的标签,而循环标签用于数据查询和展示。文章解释了这些标签的功能、使用方法及参数配置。 ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
author-avatar
yixianliu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有