加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php简易文件上传$_FILES与move_uploaded_file实现文件上传

发布时间:2023-06-10 12:52:01 所属栏目:PHP教程 来源:
导读:php简单文件上传$_files与move_uploaded_file实现文件上传.$_files["file"]["name"] - 被上传文件的名称 $_files["file"]["type"] - 被上传文件的类型 $_files["file"]["size"] - 被上传文件的大小,以字节计 $_file

php简单文件上传$_files与move_uploaded_file实现文件上传.

$_files["file"]["name"] - 被上传文件的名称 

$_files["file"]["type"] - 被上传文件的类型 

$_files["file"]["size"] - 被上传文件的大小,以字节计 

$_files["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称 

$_files["file"]["error"] - 由文件上传导致的错误代码 

这是一种非常简单文件上传方式,基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制.

注释:对于 ie,识别 jpg 文件的类型必须是 pjpeg,对于 firefox,必须是 jpeg.

/*    

*$formname                       html上传表单名称    

*$allowtype_array                允许上传的文件类型数组    

*$allow_size                     允许上传的文件最大大小,默认是1mb    

*$isrename                       是否需要重命名被上传的文件    

*/    

function upload_file($formname,$path,$allowtype_array,$allow_size='1048576',$isrename=true){    

 if($_files[$formname]['tmp_name']=='' || $_files[$formname]['name']=='' || $_files[$formname]['size']==0){    

  return false;    

 }    

 if(!file_exists('../uploadfiles/'.$path)){    

  if(!mkdir('../uploadfiles/'.$path,0777)){    

   writeerrmsg('创建上传文件保存文件目录失败,请联系管理员检查目录权限');    

  }    

 }    

 if($_files[$formname]['size']>$allow_size){    

  writeerrmsg('上传文件过大,请将上传文件限制在'.number_format($allow_size/1048576,'2','.','').'mb以内');    

 }    

 $file_name_array=explode('.',$_files[$formname]['name']);    

 $file_type=strtolower($file_name_array[count($file_name_array)-1]);    

 if(!in_array($file_type,$allowtype_array)){    

  writeerrmsg('上传文件类型错误,仅允许上传后缀名为 .'.implode(' .',$allowtype_array).'的文件');    

 }    

 $save_name=$isrename?randomname().'.'.$file_type:$_files[$formname]['name'];    

 if(!move_uploaded_file($_files[$formname]['tmp_name'],'../uploadfiles/'.$path.'/'.$save_name)){    

  writeerrmsg('文件上传过程中发生错误,请重新上传');    

 }    

 switch($_files[$formname]['error']){    

  case 0:    

   return $save_name;    

  break;    

  case 1:    

   writeerrmsg('上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值');    

  break;    

  case 2:    

   writeerrmsg('上传文件的大小超过了 html 表单中 max_file_size 选项指定的值');    

  break;    

  case 3:    

   writeerrmsg('文件只有部分被上传');    

  break;    

  case 4:    

   writeerrmsg('没有文件被上传');    

  break;    

  default: //开源代码Cuoxin.com 

   writeerrmsg('能出现这条错误提示,日子也该混到头了');    

  break;    

 }    

}  

move_uploaded_file

本函数检查并确保由 file 指定的文件是合法的上传文件,即通过 php 的 http post 上传机制所上传的,如果文件合法,则将其移动为由 newloc 指定的文件.

如果 file 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 false.

如果 file 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 false,此外还会发出一条警告.

这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话.

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!