使用CodeIgniter的类库做图片上传


Posted in PHP onJune 12, 2014

CodeIgniter的文件上传类允许文件被上传。您可以设置指定上传某类型的文件及指定大小的文件。

上传文件普遍的过程:

一个上传文件用的表单,允许用户选择一个文件并上传它。
当这个表单被提交,该文件被上传到指定的目录。
同时,该文件将被验证是否符合您设定的要求。
一旦文件上传成功,还要返回一个上传成功的确认窗口。

下面是表单:

<form method="post" action="<?=base_url()?>admin/img_upload/" enctype="multipart/form-data" />
 <div style="margin:0 0 0.5em 0em;">
  <input type="file" name="userfile" size="20" class="button" />
  <input type="submit" value=" 上传 " class="button" />
 </div>
</form>

然后是下面是上传类:

public function img_upload()
{
 $this->load->helper('url'); $config['upload_path'] = './images/'.date('Ym', time()).'/';
 $config['allowed_types'] = 'gif|jpg|png';
 $config['file_name'] = date('Y_m_d', time()).'_'.sprintf('%02d', rand(0,99));
 $config['max_size'] = '500';
 $config['max_width']  = '1024';
 $config['max_height']  = '768';
 $this->load->library('upload', $config);
 if ( !$this->upload->do_upload())
   {
     $error = array('error' => $this->upload->display_errors());
   } 
 else
   {
     $data = array('upload_data' => $this->upload->data());
   }
}

需要用到的几个函数

$this->upload->do_upload():根据你的偏好配置参数执行操作。注意:默认情况下上传的文件来自于提交表单里名为userfile的文件域,并且该表单必须是 "multipart"类型。
$this->upload->display_errors():如果do_upload()返回失败,显示错误信息。此函数不会自动输出,而是返回数据,所以你可以按你的要求安排。
$this->upload->data():这是一个辅助函数,它返回你上传文件的所有相关信息的数组。

PHP 相关文章推荐
一个PHP分页类的代码
May 18 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
破解.net程序(dll文件)编译和反编译方法
Jan 31 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
Jul 04 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
php实现将上传word文件转为html的方法
Jun 03 PHP
Laravel5中Cookie的使用详解
May 03 PHP
PHP后端银联支付及退款实例代码
Jun 23 PHP
详解php命令注入攻击
Apr 06 PHP
php中文语义分析实现方法示例
Sep 28 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
PHP封装请求类实例分析【基于Yii框架】
Oct 17 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 #PHP
Codeigniter注册登录代码示例
Jun 12 #PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 #PHP
codeigniter数据库操作函数汇总
Jun 12 #PHP
使用PHP函数scandir排除特定目录
Jun 12 #PHP
使用配置类定义Codeigniter全局变量
Jun 12 #PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 #PHP
You might like
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
PHP微信支付开发实例
2016/06/22 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
Grid得到选择行数据的方法总结
2011/01/17 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
vue数据初始化initState的实例详解
2019/04/11 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
Python中正则表达式的用法实例汇总
2014/08/18 Python
Python实现矩阵转置的方法分析
2017/11/24 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
keras 读取多标签图像数据方式
2020/06/12 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
施工资料员岗位职责
2014/01/06 职场文书
高效课堂标语
2014/06/26 职场文书
意向协议书
2015/01/27 职场文书
党支部对转正的意见
2015/06/02 职场文书
学籍证明模板
2015/06/18 职场文书
公司人力资源管理制度
2015/08/05 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers