php ci 文件上传,使用CodeIgniter的类库做图片上传

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

上传文件普遍的过程:

一个上传文件用的表单,允许用户选择一个文件并上传它。

当这个表单被提交,该文件被上传到指定的目录。

同时,该文件将被验证是否符合您设定的要求。

一旦文件上传成功,还要返回一个上传成功的确认窗口。

下面是表单:

然后是下面是上传类:

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());

}

}

偏好设置参数

偏好设置默认值选项描述

upload_pathNoneNone文件上传路径。该路径必须是可写的,相对路径和绝对路径均可以。

allowed_typesNoneNone允许上传文件的MIME类型;通常文件扩展名可以做为MIME类型. 允许多个类型用竖线‘|’分开

file_nameNone想要使用的文件名如果设置了这个参数,CodeIgniter 将根据这里设置的文件名来对上传的文件进行重命名。文件名中的扩展名也必须是允许的文件类型。

overwriteFALSETRUE/FALSE (boolean)是否覆盖。该参数为TRUE时,如果上传文件时碰到重名文件,将会把原文件覆盖;如果该参数为FALSE,CI将会在新文件的文件名后面加一个数字。If set to true, if a file with the same name as the one you are uploading exists, it will be overwritten. If set to false, a number will be appended to the filename if another with the same name exists.

max_size0None允许上传文件大小的最大值(以K为单位)。该参数为0则不限制。注意:通常PHP也有这项限制,可以在php.ini文件中指定。通常默认为2MB。

max_width0None上传文件的宽度最大值(像素为单位)。0为不限制。

max_height0None上传文件的高度最大值(像素为单位)。0为不限制。

max_filename0None文件名的最大长度。0为不限制。

encrypt_nameFALSETRUE/FALSE (boolean)是否重命名文件。如果该参数为TRUE,上传的文件将被重命名为随机的加密字符串。当你想让文件上传者也不能区分自己上传的文件的文件名时,是非常有用的。当 overwrite 为 FALSE 时,此选项才起作用。

remove_spacesTRUETRUE/FALSE (boolean)参数为TRUE时,文件名中的空格将被替换为下划线。推荐使用。

几个用到的函数

$this->upload->do_upload():根据你的偏好配置参数执行操作。注意:默认情况下上传的文件来自于提交表单里名为userfile的文件域,并且该表单必须是 "multipart"类型。

$this->upload->display_errors():如果do_upload()返回失败,显示错误信息。此函数不会自动输出,而是返回数据,所以你可以按你的要求安排。

$this->upload->data():这是一个辅助函数,它返回你上传文件的所有相关信息的数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值