| 状态 | 草稿 |
|---|---|
| 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) 保存上传的文件到一个新位置。它的含义:
$file $_FILE 数组中包含的文件名或者具体的数组数据$filename 新的文件名,如果忽略这个参数,将使用时间绰前缀 + 默认文件名$directory 新的目录, 如果忽略这个参数,将使用前面设置的上传目录$chmod 文件权限,默认 0644valid
valid($file) 测试输入数据是否正确的上传文件格式(就是是否包含PHP上传数组中各个元素)数据,是否当前没有上传。
$file $_FILES 中的元素TRUE, 否则 FALSErequired
required(array $file) 测试输入数据是否正确的上传成功的数据。
$file $_FILES中的元素TRUE,否则 FALSEtype
type(array $file, array $allowed_types) 测试上传文件(通过扩展名验证)是否是一个允许上传的文件。
$file $_FILES中的元素$allowed_types 允许的文件扩展名数组TRUE,否则 FALSEsize
size(array $file, array $size) 测试上传文件是否在允许的文件大小范围内。文件大小格式为:SB,其中,S 是(具体的)大小(1,15, 300等数字),B 是字节单位:(B)ytes, (K)ilobytes,(M)egabytes,(G)igabytes。 例如:需要限制文件大小为1MB或者更小,你可以使用“1M”。
$file $_FILES中的元素$size 文件最大限制字节TRUE,否则 FALSE