検索
ホームページバックエンド開発PHPチュートリアルphp ファイルのアップロード 複数のファイルのアップロード

くだらない話をする前に、最初に断っておきますが、この記事は PHP の単一ファイルのアップロードをマスターすることをベースにしているため、ファイルアップロードサーバーの構成やフォームの設定についてはここでは詳しく説明しません。

あまり言うことはありませんが、早速本題に入りましょう。リクエストページを書くには 2 つの方法があります (3 つのファイルをアップロードする場合を例として、フォーム部分のみを示します)。 2 つ目は、唯一の違いは name であることがわかります。1 つ目は名前を配列の形式に設定する方法であり、2 つ目は通常設定する簡単に思いつくメソッドです。

表面的にはほんの少しの違いしかありませんが、実際に doAction.php ページに送信される $_FILES は大きく異なります。

次のように、$_FILES の最初のタイプは 3 次元配列ですが、2 番目のタイプは 2 次元配列です:

明らかに $ の 2 番目の形式を扱う方が便利です。 _ファイル。もちろん、次のように、最初の形式の $_FILES を 2 番目の形式に変換する方法も見つけることができます:

<span><span>form </span><span>action</span><span>="doAction.php"</span><span> method</span><span>="post"</span><span> enctype</span><span>="multipart/form-data"</span><span>></span><span>        请选择我的上传文件
        </span><span><span>input </span><span>type</span><span>="file"</span><span> name</span><span>="myfile[]"</span><span>/></span><span><span>input </span><span>type</span><span>="file"</span><span> name</span><span>="myfile[]"</span><span>/></span><span><span>input </span><span>type</span><span>="file"</span><span> name</span><span>="myfile[]"</span><span>/></span><span><span>input </span><span>type</span><span>="submit"</span><span> value</span><span>="上传"</span><span>/></span><span></span><span>form</span><span>></span></span></span></span></span></span>
この関数を通じて、$_FILES は次の形式に変換されます:

この瞬間、2 つのアップロード これらのメソッドはすでに同じスタートラインにあります。次のタスクは、各ファイルをアップロードするための UploadFile() 関数を作成することです。これがこの記事の焦点でもあります。

ファイルアップロード機能:

<span><span>form </span><span>action</span><span>="doAction.php"</span><span> method</span><span>="post"</span><span> enctype</span><span>="multipart/form-data"</span><span>></span><span>        请选择我的上传文件
        </span><span><span>input </span><span>type</span><span>="file"</span><span> name</span><span>="myfil1"</span><span>/></span><span><span>input </span><span>type</span><span>="file"</span><span> name</span><span>="myfil2"</span><span>/></span><span><span>input </span><span>type</span><span>="file"</span><span> name</span><span>="myfil3"</span><span>/></span><span><span>input </span><span>type</span><span>="submit"</span><span> value</span><span>="上传"</span><span>/></span><span></span><span>form</span><span>></span></span></span></span></span></span>

これには2つの小さな機能も含まれています:

<span>function</span><span> getFiles(){


    </span><span>foreach</span>(<span>$_FILES</span><span>as</span><span>$file</span><span>){
        </span><span>$fileNum</span>=<span>count</span>(<span>$file</span>['name'<span>]);
        </span><span>if</span> (<span>$fileNum</span>==1<span>) {

            </span><span>$files</span>=<span>$file</span><span>;
        }</span><span>else</span><span>{
            
            </span><span>for</span> (<span>$i</span>=0; <span>$i</span> $fileNum; <span>$i</span>++<span>) { 
                </span><span>$files</span>[<span>$i</span>]['name']=<span>$file</span>['name'][<span>$i</span><span>];
                </span><span>$files</span>[<span>$i</span>]['type']=<span>$file</span>['type'][<span>$i</span><span>];
                </span><span>$files</span>[<span>$i</span>]['tmp_name']=<span>$file</span>['tmp_name'][<span>$i</span><span>];
                </span><span>$files</span>[<span>$i</span>]['error']=<span>$file</span>['error'][<span>$i</span><span>];
                </span><span>$files</span>[<span>$i</span>]['size']=<span>$file</span>['size'][<span>$i</span><span>];
            }
        }

        
    }
    </span><span>return</span><span>$files</span><span>;
}</span>

感想:

PHPファイルのアップロードに出会ったのはかなり前ですが、当時はめちゃくちゃな感じでした。 $_FILES に含まれる情報を理解し、書いた知識を使用していくつかのヒントに対処する限り、システムはそれを論理的に検討し、適切なタイミングで関数をカプセル化して、ファイルのアップロードを実行できるようです。早く出て。今回紹介するコードは決してニーズを満たすものではないので、適宜修正して独自のコードにしてください。例えばアップロードされたファイルが画像の場合、拡張子だけでは判断できず、画像の特徴を利用した検証も必要となります。

上記では、PHP ファイルのアップロードと複数ファイルのアップロードについて内容の側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
鸿蒙原生应用随机诗词鸿蒙原生应用随机诗词Feb 19, 2024 pm 01:36 PM

想了解更多关于开源的内容,请访问:51CTO鸿蒙开发者社区https://ost.51cto.com运行环境DAYU200:4.0.10.16SDK:4.0.10.15IDE:4.0.600一、创建应用点击File->newFile->CreateProgect。选择模版:【OpenHarmony】EmptyAbility:填写项目名,shici,应用包名com.nut.shici,应用存储位置XXX(不要有中文,特殊字符,空格)。CompileSDK10,Model:Stage。Device

使用java的File.length()函数获取文件的大小使用java的File.length()函数获取文件的大小Jul 24, 2023 am 08:36 AM

使用Java的File.length()函数获取文件的大小文件大小是在处理文件操作时很常见的一个需求,Java提供了一个很方便的方法来获取文件的大小,即使用File类的length()方法。本文将介绍如何使用该方法来获取文件的大小,并给出相应的代码示例。首先,我们需要创建一个File对象来表示我们想要获取大小的文件。以下是创建File对象的方法:Filef

php blob怎么转filephp blob怎么转fileMar 16, 2023 am 10:47 AM

php blob转file的方法:1、创建一个php示例文件;2、通过“function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })}”方法实现Blob转File即可。

使用java的File.renameTo()函数重命名文件使用java的File.renameTo()函数重命名文件Jul 25, 2023 pm 03:45 PM

使用Java的File.renameTo()函数重命名文件在Java编程中,我们经常需要对文件进行重命名的操作。Java提供了File类来处理文件操作,其中的renameTo()函数可以方便地重命名文件。本文将介绍如何使用Java的File.renameTo()函数来重命名文件,并提供相应的代码示例。File.renameTo()函数是File类的一个方法,

使用java的File.getParentFile()函数获取文件的父目录使用java的File.getParentFile()函数获取文件的父目录Jul 27, 2023 am 11:45 AM

使用java的File.getParentFile()函数获取文件的父目录在Java编程中,我们经常需要操作文件和文件夹。当我们需要获取文件的父目录时,可以使用Java提供的File.getParentFile()函数来完成。本文将介绍如何使用这个函数并提供代码示例。Java中的File类是用于操作文件和文件夹的主要类。它提供了许多方法来获取和操作文件的属性

使用java的File.getParent()函数获取文件的父路径使用java的File.getParent()函数获取文件的父路径Jul 24, 2023 pm 01:40 PM

使用java的File.getParent()函数获取文件的父路径在Java编程中,我们经常需要操作文件和文件夹。有时候,我们需要获取一个文件的父路径,也就是该文件所在文件夹的路径。Java的File类提供了getParent()方法用于获取文件或文件夹的父路径。File类是Java对文件和文件夹的抽象表示,它提供了一系列操作文件和文件夹的方法。其中,get

如何使用Java中的File.delete()方法删除文件或目录?如何使用Java中的File.delete()方法删除文件或目录?Nov 18, 2023 am 08:02 AM

如何使用Java中的File.delete()方法删除文件或目录?概述:在Java中,我们可以使用File类的delete()方法来删除文件或目录。该方法用于删除指定的文件或目录。但是需要注意的是,该方法只能删除空目录或者没有被其他程序打开的文件。如果文件或目录删除失败,可以通过捕获IOException异常来查找具体原因。步骤一:导入相关的包首先,我们需要

如何使用Java中的Files函数进行文件操作如何使用Java中的Files函数进行文件操作Jun 26, 2023 pm 04:21 PM

在Java编程语言中,经常需要进行文件的读取、写入、复制、删除等操作。Java提供了一组Files类的函数来进行文件操作。本文将介绍如何使用Java中的Files函数进行文件操作。导入所需的包在进行文件操作之前,首先要导入Java的io包和nio包:importjava.io.File;importjava.io.IOException;import

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール