使用CodeIgniter的类库做图片上传

CI的图片上传功能
服务器君一共花费了226.602 ms进行了5次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

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

偏好设置参数

偏好设置默认值选项描述
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():这是一个辅助函数,它返回你上传文件的所有相关信息的数组。

本文地址:http://www.nowamagic.net/librarys/veda/detail/1740,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/1740

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《PHP经典实例(第2版)》 斯克拉(David Sklar) (作者), 切贝特伯格(Adam Tracbtenberg) (作者), 李松峰 (译者), 秦绪文 (译者), 李丽 (译者)

PHP经典实例(第2版)能够为您节省宝贵的Web开发时间。有了这些针对真实问题的解决方案放在手边,大多数编程难题都会迎刃而解。《PHP经典实例(第2版)》将PHP的特性与经典实例丛书的独特形式组合到一起,足以帮您成功地构建跨浏览器的Web应用程序。在这个修订版中,您可以更加方便地找到各种编程问题的解决方案,《PHP经典实例(第2版)》中内容涵盖了:表单处理;Session管理;数据库交互;使用Web服务。

更多计算机宝库...