帝国CMS模板大全
www.admin99.cn
www.92cms.cn 帝国CMS模板下载站!,情怀,养站,二次开发!源码需求比较大的一站式会员下载,价更省!!!

php多文件上传 多图片上传程序代码

多文件上传其实就包括了图片及各种文件了,下面介绍的是一款PHP多文件上传类,一共两个文件,upp.php 和 uploadFile.php,upp.php,这是前台所显示的表单文件了,默认的是四个上传文件域,我们可以手动进行修改,另外这个页面嵌套了 uploadFile.php 文件上传类,下面一起来看例子.

php文件上传例子,代码如下:

<?php 

header( 'content-type:text/html;charset=utf-8' ); 

require ( 'uploadFile.php' ); 

if (isset( $_POST [ 'submit' ])){ 

$uploads  =  $_FILES [ 'file' ]; 

$num_file  =  count ( $uploads [ 'name' ]); 

$up  =  new  UploadFile( $uploads , 'uploads' ,1024); 

$num  =  $up ->upload(); 

if ( $num  ==  $num_file  ){ 

echo   '全部文件上传成功' ; 

exit ; 

} else { 

echo   $num , '个文件上传成功<br/>' ; 

echo   $up ->showErrorInfo(); 

exit ; 

?> 

 

<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > 

<html xmlns= "http://www.111cn.net/ 1999/xhtml" > 

<head> 

<meta http-equiv= "Content-Type"  content= "text/html; charset=utf-8"  /> 

<title>无标题文档</title> 

</head> 

<body> 

<form action= "uup.php"  method= "post"  enctype= "multipart/form-data" > 

<p><input name= "file[]"  type= "file"  /></p> 

<p><input name= "file[]"  type= "file"  /></p> 

<p><input name= "file[]"  type= "file"  /></p> 

<p><input name= "file[]"  type= "file"  /></p> 

<input name= "submit"  type= "submit"  /> 

</form> 

</body> 

</html> 

PHP文件上传类代码,代码如下:

<?php 

/*————*/  

class  UploadFile 

var   $user_post_file   =  array (); 

var   $save_file_path   =  '' ; 

var   $max_file_size    =  '' ; 

var   $allow_type       =  array ( 'gif' , 'jpg' , 'png' , 'zip' , 'rar' , 'txt' , 'doc' , 'pdf' ); 

var   $final_file_path  =  '' ; 

var   $save_info        =  array (); 

var   $error_info       =  array (); 

/**  

*构造函数,用于初始化信息。  

*  

*@param Array $file  

*@param String $path  

*@param Integer $size  

*@param Array $type  

*/  

function  __construct( $file , $path , $size  = 2097152, $type = '' ) 

$this ->user_post_file   =  $file ; 

$this ->save_file_path   =  $path ; 

$this ->max_file_size    =  $size ; 

if (! $type = '' ){ 

$this ->allow_type[] =  $type ; 

/**  

*  

*  

*@access public  

*@return int  

*/  

function  upload() 

for ( $i =0; $i < count ( $this ->user_post_file[ 'name' ]); $i ++) 

if ( $this ->user_post_file[ 'error' ][ $i ] == 0){ //上传文件状态正常  

//获取当前文件名,临时文件名,大小,类型,扩展名  

$name      =  $this ->user_post_file[ 'name' ][ $i ]; 

$tmp_name  =  $this ->user_post_file[ 'tmp_name' ][ $i ]; 

$size      =  $this ->user_post_file[ 'size' ][ $i ]; 

$type      =  $this ->user_post_file[ 'type' ][ $i ]; 

$ext_name  =  $this ->getExtName( $name ); 

//文件大小  

if (! $this ->checkSize( $size )){ 

$this ->error_info[] =  '您上传的文件:' . $name . '太大' ; 

continue ; 

//扩展名  

if (! $this ->checkType( $ext_name )){ 

$this ->error_info[] =  '您上传的文件:' . $name . '不合法' ; 

continue ; 

//非法上传  

if (! is_uploaded_file ( $tmp_name )){ 

$this ->error_info[] =  '您上传的文件:' . $name . '属于非法提交' ; 

continue ; 

//  

$basename  =  $this ->getBaseName( $name , "." . $ext_name ); 

$final_filename  =  $basename . '-' .time(). '-' .rand(1,10000). '.' . $ext_name ; 

$this ->final_file_path =  $this ->save_file_path. '/' . $final_filename ; 

if (!move_uploaded_file( $tmp_name , $this ->final_file_path)){ 

$this ->error_info =  $this ->user_post_file[ 'error' ][ $i ]; 

continue ; 

//  

$this ->save_info[] =  array ( 

"name"  =>  $name , 

"ext_name"  =>  $ext_name , 

           "type"  =>  $type , 

                             "size"  =>  $size ,  

"final_filename"  =>  $final_filename , 

                             "path"  =>  $this ->final_file_path 

);  

return   count ( $this ->save_info); 

/*  

 *检查用户上传文件的大小时候合法  

 *  

 *@param Integer $size  

 *@access private  

 *@return boolean  

 */  

function  checkSize( $size ) 

if ( $size  >  $this ->max_file_size){ 

return  FALSE; 

return  TRUE; 

/*  

 *检查用户上传文件的类型是否合法  

 *  

 *@access private  

 *@return boolean  

 */  

function  checkType( $extension ) 

foreach ( $this ->allow_type  as   $type ){ 

if ( strcasecmp ( $extension , $type ) == 0){ 

return  TRUE; 

return  FALSE; 

/*  

 *获取文件的扩展名  

 *  

 *@param string $filename  

 *@access private  

 *@return string  

 */  

function  getExtName( $filename ) 

$p  =  pathinfo ( $filename ); 

return   $p [ 'extension' ]; 

/*  

 *获取文件名(不包括扩展名)  

 *  

 *@param string $filename  

 *@param string $type  

 *@access private  

 *@return boolean  

 */  

function  getBaseName( $filename , $ext_name ) 

$basename  =  basename ( $filename , $ext_name ); 

return   $basename ; 

/*  

 *  

 *  

 *  

 */  

function  showErrorInfo() 

if ( count ( $this ->error_info) != 0){ 

//echo 'error…<br/>';  

foreach ( $this ->error_info  as   $k => $v ){ 

echo  ( $k +1), ':' , $v , '<br/>' ; 

} //开源代码phpfensi.com  

function  getSaveInfo() 

return   $this ->save_info; 

//$upload = new UploadFile('','');  

//$upload = new UploadFile();  

//$upload->showErrorInfo();  

?>

 

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php多文件上传 多图片上传程序代码》
文章链接:https://www.admin99.cn/6694
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
QQ站长交流群:953950264

登录

找回密码

注册