PHP는 파일 일괄 업로드, 파일 접미사 설정, 파일 이름 수정 등과 같은 기능을 구현합니다.

墨辰丷
풀어 주다: 2023-03-31 06:04:01
원래의
2046명이 탐색했습니다.

이 글은 주로 PHP에서 파일 일괄 업로드, 파일 접미사 이름 설정, 파일 이름 수정 등의 기능을 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.

이 문서의 예에서는 PHP에서 다중 파일 업로드를 구현하는 방법을 설명합니다. 구체적인 구현 방법은 다음과 같습니다.

<?php
define(&#39;ROOT&#39;,&#39;D:/Program Files/www/test/&#39;);
class Files_Tool{
 protected static $allowExt=array(&#39;.jpg&#39;,&#39;.jpeg&#39;,&#39;.png&#39;,&#39;.gif&#39;,&#39;.bmp&#39;,&#39;.svg&#39;,&#39;.chm&#39;,&#39;.pdf&#39;,&#39;.zip&#39;,&#39;.rar&#39;,&#39;.tar&#39;,&#39;.gz&#39;,&#39;.bzip2&#39;,&#39;.ppt&#39;,&#39;.doc&#39;);
 public static $wrong=array();
 public static $path=array();
 protected static $error=array(
  0=>&#39;文件上传失败,没有错误发生,文件上传成功&#39;,
  1=>&#39;文件上传失败,上传的文件超过了 php.ini中upload_max_filesize 选项限制的值&#39;,
  2=>&#39;文件上传失败,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值&#39;,
  3=>&#39;文件上传失败,文件只有部分被上传&#39;,
  4=>&#39;文件上传失败,没有文件被上传&#39;,
  5=>&#39;文件上传失败,未允许的后缀&#39;,
  6=>&#39;文件上传失败,找不到临时文件夹.PHP 4.3.10 和 PHP 5.0.3 引进&#39;,
  7=>&#39;文件上传失败,文件写入失败.PHP 5.1.0 引进&#39;,
  8=>&#39;文件上传失败,未接收到表单域的NAME&#39;,
  9=>&#39;文件上传失败,,错误未知&#39;
 );
  public static function upload($name){
   //检测是否接收到表单域的NAME
   if(!isset($_FILES[$name])){
    self::$wrong[]=8;
    return false;
   }
   //3维数组简化成2维数组
   $files=array_shift($_FILES);
   //获取后缀
   $files=self::get_Ext($files);
   //处理文件次数
   $n=count($files[&#39;name&#39;]);
   for($i=0;$i<$n;$i++){
    //查看当前文件是否有错误信息,有则跳过当前文件,处理下个文件
    if($files[&#39;error&#39;][$i]!=0){        
    self::$wrong[$i+1]=$files[&#39;error&#39;][$i];
    continue;
    }
    //查看当前文件的后缀,是否允许,如果不允许,跳过当前文件
    if(!in_array($files[&#39;name&#39;][$i],self::$allowExt)){
     self::$wrong[$i+1]=5;
     continue;
    }
    //路径
    $dir=self::time_Dir();
    //文件名
    $name=self::rand_Name();
    //后缀
    $ext=$files[&#39;name&#39;][$i];
    //文件位置
    $path=$dir.$name.$ext;
    //移动临时文件,如果失败,跳过当前文件
    if(!move_uploaded_file($files[&#39;tmp_name&#39;][$i],$path)){
    self::$wrong[$i]=9;
    continue;
    }
    //存入路径
    self::$path[$i+1]=strtr($path,array(ROOT=>&#39;&#39;));
   }
   return self::$path;
  }
  //获取后缀的方法
  protected static function get_Ext($arr){
    if(!is_array($arr) || !isset($arr[&#39;name&#39;])){return false;}
    foreach($arr[&#39;name&#39;] as $k=>$v){
    $arr[&#39;name&#39;][$k]=strtolower(strrchr($v,&#39;.&#39;));
    }
    return $arr;
  }
  //以日期生成路径
  protected static function time_Dir(){
   $dir=ROOT.&#39;Data/images/&#39;.date(&#39;Y/m/d/&#39;,time());
   if(!is_dir($dir)){
    mkdir($dir,0777,true);
   }
   return $dir;
  }
  //生成随机文件名
  protected static function rand_Name(){
   $str=str_shuffle(&#39;1234567890qwertyuiopasdfghjklzxcvbnm&#39;);
   $str=substr($str,0,6);
   return $str;
  }
  //错误接口
  public static function errors(){
   foreach(self::$wrong as $k=>$v){
    self::$wrong[$k]=&#39;第&#39;.$k.&#39;个&#39;.self::$error[$k];
  }
  return self::$wrong;
  }
}
로그인 후 복사

요약: 위는 이 문서의 전체 내용입니다. 모든 사람에게 도움이 되기를 바랍니다. 학습.

관련 추천:

php 매개변수 및 데이터 필터링 그래픽 세부 정보

PHP 이메일 전송 사례

php 중간 캐시 분류 데이터베이스 캐시

위 내용은 PHP는 파일 일괄 업로드, 파일 접미사 설정, 파일 이름 수정 등과 같은 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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