JiroZhang博客

原生php(一)上传文件篇

  原生php上传文件:都有详细的备注!

      上传函数:

                

/*
* Created by PhpStorm.
* User: Jirozhang
* Date: 2018/8/22 0022
* Time: 16:23
*/
/* 上传文件
* @param array $fileInfo
* @param string $path
* @param array $allowExt
* @param int $maxSize
* @return string
*/

 
function uploadFile($fileInfo,$path,$allowExt = ['jpeg','jpg','png','html','txt','gif'],$maxSize=10485760)
 {
   
if ($fileInfo['error'] == UPLOAD_ERR_OK){
       
//文件是否通过http post方式上传上来的!tmp_name是临时上传的位置
       
if(is_uploaded_file($fileInfo['tmp_name'])){
           
//获取文件拓展名称
           
$ext = strtolower(pathinfo($fileInfo['name'],PATHINFO_EXTENSION));
           
//生成10位唯一标示码
           
$unique = substr(md5(uniqid(microtime(true),true)),0,10);
           
//文件夹不存在则创建
           
if (! file_exists ( $path )) {
               
mkdir ($path , 0777, true );
               
chmod ($path, 0777 );
            }
           
//拼凑最终储存路径,,并且重命了唯一随机源文件名
            //格式example :  /upload/imagesjirozhang_9e1bbb5d23c.png;
   
$finaPath = $path . '/' . pathinfo($fileInfo['name'],PATHINFO_FILENAME).'_' . $unique . '.' .$ext;

           
//此处是为了限制上传文件的格式
           
if (in_array($ext,$allowExt)){
                 
if ($fileInfo['size'] <= $maxSize ){
                       
if(move_uploaded_file($fileInfo['tmp_name'],$finaPath)){
                             
$msg = '文件上传成功';
                       }
else{
                           
$msg = '文件上传失败';
                       }
                 }
else{
                     
$msg = '文件过大';
                 }
            }
else{
               
$msg = '非法文件类型';
            }
        }
else{
           
$msg =  '文件不是通过http post方法上传的!!!!!';
        }
       
return $msg;
    }

 }


使用过程:

 

 $file = $_FILES['fileinfo'];
// BASE_PATH = define('BASE_PATH',str_replace('\\','/',realpath(dirname(__FILE__).'/'))."/");
$path = BASE_PATH . '/upload/images';
$allowExt = ['gif','jpeg','jpg','png'];
$maxSize = 102400;//100k
$res = uploadFile($file,$path,$allowExt,$maxSize);
jsAlert(
$res,'');


以上就是原生php上传了,可能写的不够完美!!仅供参考              

                

赞 (0) 打赏

评论