Heim php教程 php手册 支持多文件上传php文件上传代码

支持多文件上传php文件上传代码

May 25, 2016 pm 04:57 PM
文件上传

我们下面是个文件图片上传类,调用方法 upfile($path = "./", $format = "", $maxsize = 0, $over = 0) :构造函数 参数(保存路径,上传格式,上传最大字节数,是否覆盖同名文件),如果你要上传多文件就foreach($_FILES as $key=>$val)再 $filear[] = $f->upload($key);//返回上传后文件名数组。

 */

 代码如下 复制代码

class upfile{
 //上传文件信息
 var $filename;
 // 保存名
 var $savename;
 // 保存路径
 var $savepath;
 // 文件格式限定,为空时不限制格式
 var $format = "";
 // 覆盖模式
 var $overwrite = 0;
 /* $overwrite = 0 时不覆盖同名文件
  * $overwrite = 1 时覆盖同名文件
  */
 //文件最大字节
 var $maxsize = 210000000;
 //文件扩展名
 var $ext;
 
 /* 构造函数
  * $path 保存路径
  * $format 文件格式(用逗号分开)
  * $maxsize 文件最大限制,0为默认值
  * $over 复盖参数
  */
 function upfile($path = "./", $format = "", $maxsize = 0, $over = 0){
  if(!file_exists($path)){
   $this->halt("指定的目录[ ".$path." ]不存在。");
  }
 
  if(!is_writable($path)){
   $this->halt("指定的目录[ ".$path." ]不可写。");
  }
  $path = str_replace("","/", $path);
  $this->savepath = substr($path, -1) == "/" ? $path : $path."/";//保存路径
 
  $this->overwrite = $over;//是否复盖相同名字文件
  $this->maxsize = !$maxsize ? $this->maxsize : $maxsize;//文件最大字节
  $this->format = $format;
 }
 
 /*
  * 功能:检测并组织文件
  * $form      文件域名称
  * $filename 上传文件保存名称,为空或者上传多个文件时由系统自动生成名称
  * $filename = 1,并上传多个同文件域名称文件时,则文件保存为原上传文件名称。
  */
 function upload($form, $filename = ""){
  if(!isset($_files[$form])){
   $this->halt("指定的文件域名称不存在。");
  }else{
   $filear = $_files[$form];
  }
 
  if(is_array($filear["name"])){//上传同文件域名称多个文件
   $outfile = array();//返回文件名称数组
   for($i = 0; $i     $ar["name"] = $filear["name"][$i];
    $ar["tmp_name"] = $filear["tmp_name"][$i];
    $ar["size"] = $filear["size"][$i];
    $ar["error"] = $filear["error"][$i];
   
    $this->getext($ar["name"]);//取得扩展名
    $this->set_savename($filename == 1 ? $ar["name"] : "");//设置保存文件名
    $outfile[] = $this->copyfile($ar);
   }
   return $outfile;
  }else{//上传单个文件
   $this->getext($filear["name"]);//取得扩展名
   $this->set_savename($filename);//设置保存文件名
   return $this->copyfile($filear);
  }
  return false;
 }
 
 /*
  * 功能:检测并复制上传文件
  * $filear 上传文件资料数组
  */
 function copyfile($filear){
 
  if($filear["size"] > $this->maxsize){
   $this->halt("上传文件 ".$filear["name"]." 大小超出系统限定值[".$this->maxsize." 字节],不能上传。");
  }
 
  if(!$this->overwrite && file_exists($this->savename)){
   $this->halt($this->savename." 文件名已经存在。");
  }
 
  if(!$this->chkext()){
   $this->halt($this->ext." 文件格式不允许上传。");
  }
 
  if(!copy($filear["tmp_name"], $this->savepath.$this->savename)){
   $errors = array(0=>"文件上传成功",
       1=>"上传的文件超过了 php教程.ini 中 upload_max_filesize 选项限制的值。 ",
       2=>"上传文件的大小超过了 html 表单中 max_file_size 选项指定的值。 ",
       3=>"文件只有部分被上传。 ",
       4=>"没有文件被上传。 ");
   $this->halt($errors[$filear["error"]]);
  }else{
   @unlink($filear["tmp_name"]);//删除临时文件
   return $this->savename;//返回上传文件名
  }
 }
 
 /*
  * 功能: 取得文件扩展名
  * $filename 为文件名称
  */
 function getext($filename){
  if($filename == "") return;
 
  $ext = explode(".", $filename);
 
  $this->ext = $ext[count($ext)-1];
 }
 
 /*
  * 功能:检测文件类型是否允许
  */
 function chkext(){
  if($this->format == "" || in_array(strtolower($this->ext), explode(",", strtolower($this->format)))) return true;
  else return false;
 }
 /*
  * 功能: 设置文件保存名
  * $savename 保存名,如果为空,则系统自动生成一个随机的文件名
  */
 function set_savename($savename = ""){
  if ($savename == "") { // 如果未设置文件名,则生成一个随机文件名
   srand ((double) microtime() * 1000000);
   $rnd = rand(100,999);
   $name = date('u') + $rnd;
   $name = $name.".".$this->ext;
  } else {
   $name = $savename;
  }
  $this->savename = $name;
 }
 
 /*
  * 功能:错误提示
  * $msg 为输出信息
  */
 function halt($msg){
  echo "注意:".$msg;
  exit;
 }
 
/*
*
*主要用来删除已上传的文件,不返回
*参数$file :文件路径
*/

function delete_file($file)
{
    if (file_exists($file))
    {
        $delete = chmod ($file, 0777);
        $delete = unlink($file);
        if(file_exists($file))
        {
            $filesys = eregi_replace("/","",$file);
            $delete = system("del $filesys");
            clearstatcache();
            if(file_exists($file))
            {
                $delete = chmod ($file, 0777);
                $delete = unlink($file);
                $delete = system("del $filesys");
            }
        }
        clearstatcache();
    }
}
 
 
}

/*
使用方法

* 文件上传类
 upfile($path = "./", $format = "", $maxsize = 0, $over = 0)  :构造函数 参数(保存路径,上传格式,上传最大字节数,是否覆盖同名文件)
 
 
 
 * 实例:
 


 
//上传单文件
  if(isset($_files["files"]))
  {
     $filear=array();
     $filear = $f->upload("files");//返回上传后文件名
  echo $filear;
 
  }
 


 
 

//上传多个不同文件域名称文件

 代码如下 复制代码
if(isset($_files){
 foreach($_files as $key=>$val)
  $filear[] = $f->upload($key);//返回上传后文件名数组
}


*/



教程网址:

欢迎收藏∩_∩但请保留本文链接。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie Laravel zum Implementieren von Datei-Upload- und Download-Funktionen So verwenden Sie Laravel zum Implementieren von Datei-Upload- und Download-Funktionen Nov 02, 2023 pm 04:36 PM

So verwenden Sie Laravel zum Implementieren von Datei-Upload- und Download-Funktionen. Laravel ist ein beliebtes PHP-Web-Framework, das eine Fülle von Funktionen und Tools bietet, um die Entwicklung von Webanwendungen einfacher und effizienter zu machen. Eine der am häufigsten verwendeten Funktionen ist das Hoch- und Herunterladen von Dateien. In diesem Artikel wird erläutert, wie Sie mit Laravel Funktionen zum Hoch- und Herunterladen von Dateien implementieren, und es werden spezifische Codebeispiele bereitgestellt. Datei-Upload Unter Datei-Upload versteht man das Hochladen lokaler Dateien auf den Server zur Speicherung. In Laravel können wir den Datei-Upload nutzen

Implementieren Sie das Hoch- und Herunterladen von Dateien in Workerman-Dokumenten Implementieren Sie das Hoch- und Herunterladen von Dateien in Workerman-Dokumenten Nov 08, 2023 pm 06:02 PM

Um das Hochladen und Herunterladen von Dateien in Workerman-Dokumenten zu implementieren, sind spezifische Codebeispiele erforderlich. Einführung: Workerman ist ein leistungsstarkes PHP-Framework für die asynchrone Netzwerkkommunikation, das einfach, effizient und benutzerfreundlich ist. In der tatsächlichen Entwicklung sind das Hochladen und Herunterladen von Dateien häufige Funktionsanforderungen. In diesem Artikel wird erläutert, wie das Workerman-Framework zum Implementieren des Hochladens und Herunterladens von Dateien verwendet wird, und es werden spezifische Codebeispiele aufgeführt. 1. Datei-Upload: Unter Datei-Upload versteht man die Übertragung von Dateien vom lokalen Computer auf den Server. Folgendes wird verwendet

Wie verwende ich gRPC, um das Hochladen von Dateien in Golang zu implementieren? Wie verwende ich gRPC, um das Hochladen von Dateien in Golang zu implementieren? Jun 03, 2024 pm 04:54 PM

Wie implementiert man den Datei-Upload mit gRPC? Erstellen Sie unterstützende Servicedefinitionen, einschließlich Anforderungs- und Antwortnachrichten. Auf dem Client wird die hochzuladende Datei geöffnet, in Blöcke aufgeteilt und dann über einen gRPC-Stream an den Server gestreamt. Auf der Serverseite werden Dateiblöcke empfangen und in einer Datei gespeichert. Der Server sendet nach Abschluss des Datei-Uploads eine Antwort, um anzugeben, ob der Upload erfolgreich war.

So lösen Sie die Ausnahme beim Hochladen von Java-Dateien (FileUploadException) So lösen Sie die Ausnahme beim Hochladen von Java-Dateien (FileUploadException) Aug 18, 2023 pm 12:11 PM

So lösen Sie eine Java-Datei-Upload-Ausnahme (FileUploadException). Ein Problem, das bei der Webentwicklung häufig auftritt, ist FileUploadException (Datei-Upload-Ausnahme). Dies kann aus verschiedenen Gründen auftreten, z. B. weil die Dateigröße den Grenzwert überschreitet, das Dateiformat nicht übereinstimmt oder eine falsche Serverkonfiguration vorliegt. Dieser Artikel beschreibt einige Möglichkeiten zur Lösung dieser Probleme und stellt entsprechende Codebeispiele bereit. Begrenzen Sie die Größe hochgeladener Dateien. Begrenzen Sie in den meisten Fällen die Dateigröße

Hochladen und Verarbeiten von Dateien in Laravel: Vom Benutzer hochgeladene Dateien verwalten Hochladen und Verarbeiten von Dateien in Laravel: Vom Benutzer hochgeladene Dateien verwalten Aug 13, 2023 pm 06:45 PM

Hochladen und Verarbeiten von Dateien in Laravel: Verwalten von vom Benutzer hochgeladenen Dateien Einführung: Das Hochladen von Dateien ist eine sehr häufige Funktionsanforderung in modernen Webanwendungen. Im Laravel-Framework wird das Hochladen und Verarbeiten von Dateien sehr einfach und effizient. In diesem Artikel wird erläutert, wie Sie von Benutzern hochgeladene Dateien in Laravel verwalten, einschließlich der Überprüfung, Speicherung, Verarbeitung und Anzeige von Datei-Uploads. 1. Datei-Upload Unter Datei-Upload versteht man das Hochladen von Dateien vom Client auf den Server. In Laravel sind Datei-Uploads sehr einfach zu handhaben. Erste,

Anleitung zum Hochladen von PHP-Dateien: So verwenden Sie die Funktion move_uploaded_file, um hochgeladene Dateien zu verarbeiten Anleitung zum Hochladen von PHP-Dateien: So verwenden Sie die Funktion move_uploaded_file, um hochgeladene Dateien zu verarbeiten Jul 30, 2023 pm 02:03 PM

Anleitung zum Hochladen von PHP-Dateien: So verwenden Sie die Funktion move_uploaded_file, um hochgeladene Dateien zu verarbeiten. Bei der Entwicklung von Webanwendungen ist das Hochladen von Dateien eine häufige Anforderung. PHP bietet eine praktische Funktion move_uploaded_file() zur Verarbeitung hochgeladener Dateien. In diesem Artikel erfahren Sie, wie Sie diese Funktion zum Implementieren der Datei-Upload-Funktion verwenden. 1. Vorbereitung Bevor Sie beginnen, stellen Sie sicher, dass Ihre PHP-Umgebung mit Datei-Upload-Parametern konfiguriert wurde. Sie können dies tun, indem Sie php.in öffnen

So implementieren Sie den Fortschrittsbalken für den FTP-Datei-Upload mit PHP So implementieren Sie den Fortschrittsbalken für den FTP-Datei-Upload mit PHP Jul 30, 2023 pm 06:51 PM

So verwenden Sie PHP zum Implementieren des FTP-Datei-Upload-Fortschrittsbalkens 1. Einführung in den Hintergrund Bei der Website-Entwicklung ist das Hochladen von Dateien eine häufige Funktion. Um das Benutzererlebnis beim Hochladen großer Dateien zu verbessern, müssen wir dem Benutzer häufig einen Upload-Fortschrittsbalken anzeigen, um ihn über den Datei-Upload-Prozess zu informieren. In diesem Artikel wird erläutert, wie Sie mit PHP die Fortschrittsbalkenfunktion zum Hochladen von FTP-Dateien implementieren. 2. Die Grundidee der Implementierung des Fortschrittsbalkens beim Hochladen von FTP-Dateien. Der Fortschrittsbalken beim Hochladen von FTP-Dateien wird normalerweise durch Berechnen der Größe der hochgeladenen Datei und der Größe der hochgeladenen Datei berechnet.

Vereinfachen Sie die Datei-Upload-Verarbeitung mit Golang-Funktionen Vereinfachen Sie die Datei-Upload-Verarbeitung mit Golang-Funktionen May 02, 2024 pm 06:45 PM

Antwort: Ja, Golang bietet Funktionen, die das Hochladen von Dateien vereinfachen. Details: Der MultipartFile-Typ bietet Zugriff auf Dateimetadaten und -inhalte. Die FormFile-Funktion ruft eine bestimmte Datei aus der Formularanforderung ab. Die Funktionen ParseForm und ParseMultipartForm werden zum Parsen von Formulardaten und mehrteiligen Formulardaten verwendet. Die Verwendung dieser Funktionen vereinfacht den Dateiverarbeitungsprozess und ermöglicht Entwicklern, sich auf die Geschäftslogik zu konzentrieren.

See all articles