本文实例讲述了Zend Framework上传文件重命名的实现方法。分享给大家供大家参考,具体如下:
1. Zend Framework文件上传重命名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
//实例化文件上专类 $fName = $this ->_request->getPost( 'fName' ); $adapter = new Zend_File_Transfer_Adapter_Http(); //存放上传文件的文件夹 $adapter ->setDestination( '/opt/lampp/htdocs/blog/upload' ); //上传配置 $adapter ->addValidator ( 'Extension' , false, $configs [ 'extension' ]) //文件格式限制 ->addValidator( 'Size' , false, array ( 'min' => floatval ( $configs [ 'minsize' ]), 'max' => floatval ( $configs [ 'maxsize' ]))) //设置上传文件的大小在1-2M之间 ->addValidator ( 'Count' , false, array ( 'min' => intval ( $configs [ 'mincount' ]), 'max' => intval ( $configs [ 'maxcount' ])) ); //上传文件数量 //重命名配置 $fileInfo = $adapter ->getFileInfo(); //获取基本配置 $extName = $this ->getExtension( $fileInfo ); //获取扩展名 $filename =md5(time()+ $fileInfo [ 'fFile' ][ 'name' ]). '.' . $extName ; //重命名 $adapter ->addFilter( 'Rename' , array ( 'target' => $filename , 'overwrite' => true)); //执行重命名 //返回上传后出现在信息 if (! $adapter ->receive()) { $messages = $adapter ->getMessages (); //检测 //Zend_Debug::dump($messages); $message = '' ; if ( is_array ( $messages )) { foreach ( $messages as $k => $v ) { $message .= $k . ':' . $v . '<br>' ; } } else { $message = $messages ; } } else { $this ->view->message= '上传成功!' ; } |
2. 获取文件扩展名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
/** * 获取文件扩展名 * @param String $name 文件名词 * @author */ public function getExtension ( $name ) { $fname = '' ; if ( $name ) { foreach ( $name as $val ) { $fname = $val [ 'name' ]; } $exts = @split( "[/\\.]" , $fname ) ; $n = count ( $exts )-1; $exts = $exts [ $n ]; return $exts ; } } |
希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。