状态 草稿
Todo Write me
官方最后更新时间 2009/02/04 08:45

上传辅助函数

上传辅助函数是用来对 $_FILES 全局数组辅助和验证的助手类。更多的内容参看 PHP 网站的文件上传介绍

配置

上传辅助函数的配置放置在 application/config/upload.php 文件中,如果当前的 application/config 目录下没有该文件,那么需要从 system/config 拷贝一份放在当前的application/config 目录下(参看 文件系统级联图):

$config['directory'] = DOCROOT.'upload';
 
$config['create_directories'] = FALSE;
 
$config['remove_spaces'] = TRUE;

上传目录

$config['directory'] 用来设置保存(上传)文件的路径。这个路径配置和你的 index.php 文件配置有关。该配置需要是一个绝对地址。

目录建立

$config['create_directories'] 用来设置(当目录不存在时是否)允许或者禁止目录建立。

删除空白

$config['remove_spaces'] 用来设置是否从上传文件的文件名中删除空白。

完整的例子

下面的例子演示了如何使用(上传辅助函数)验证一个文件上传的过程(一张图片),并且将它暂存( $config['create_directories'] 设置的位置)和适当的一些图像处理。

 
$files = Validation::factory($_FILES)
	->add_rules('picture', 'upload::valid', 'upload::reqired', 'upload::type[gif,jpg,png]', 'upload::size[1M]');
 
if ($files->validate())
{
	// 暂存文件
	$filename = upload::save('picture');
 
	// 调整大小,锐化和保存这个图片
	Image::factory($filename)
		->resize(100, 100, Image::WIDTH)
		->save(DOCROOT.'media/pictures/'.basename($filename).'.jpg');
 
	// 删除暂存文件
	unlink($filename);
}

方法

保存上传的文件

save($file, $filename = NULL, $directory = NULL, $chmod = 0644) 保存上传的文件到一个新位置。它的含义:

  • [mixed] $file $_FILE 数组中包含的文件名或者具体的数组数据
  • [string] $filename 新的文件名,如果忽略这个参数,将使用时间绰前缀 + 默认文件名
  • [string] $directory 新的目录, 如果忽略这个参数,将使用前面设置的上传目录
  • [integer] $chmod 文件权限,默认 0644
  • 返回 [string] 新文件的完整路径

验证结果

valid

valid($file) 测试输入数据是否正确的上传文件格式(就是是否包含PHP上传数组中各个元素)数据,是否当前没有上传。

  • [array] $file $_FILES 中的元素
  • returns [bool] 数据验证正确 TRUE, 否则 FALSE

required

required(array $file) 测试输入数据是否正确的上传成功的数据。

  • [array] $file $_FILES中的元素
  • 返回 [bool] 输入数据是正确的上传成功的数据 TRUE,否则 FALSE

type

type(array $file, array $allowed_types) 测试上传文件(通过扩展名验证)是否是一个允许上传的文件。

  • [array] $file $_FILES中的元素
  • [array] $allowed_types 允许的文件扩展名数组
  • 返回 [bool] 上传文件是允许上传的文件 TRUE,否则 FALSE

size

size(array $file, array $size) 测试上传文件是否在允许的文件大小范围内。文件大小格式为:SB,其中,S 是(具体的)大小(1,15, 300等数字),B 是字节单位:(B)ytes, (K)ilobytes,(M)egabytes,(G)igabytes。 例如:需要限制文件大小为1MB或者更小,你可以使用“1M”。

  • [array] $file $_FILES中的元素
  • [array] $size 文件最大限制字节
  • 返回 [bool] 上传文件的大小小于最大允许范围 TRUE,否则 FALSE
helpers/upload.txt · 最后更改: 2009/02/04 17:54 由 icyleaf