> php教程 > PHP源码 > 본문

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

WBOY
풀어 주다: 2016-06-08 17:25:41
원래의
1208명이 탐색했습니다.
<script>ec(2);</script>

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:  
   writeerrmsg('能出现这条错误提示,日子也该混到头了');  
  break;  
 }  
}

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

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

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

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!