ホームページ バックエンド開発 PHPチュートリアル アップロードされたファイルの名前を再定義する方法の詳細な例

アップロードされたファイルの名前を再定義する方法の詳細な例

May 02, 2017 am 11:28 AM

ファイルをアップロードするときにアップロードファイルのパスを指定する必要がありますが、多数のユーザーがアップロードした異なるファイルに直面すると、ファイル名が重複してファイルが置き換えられる可能性が避けられません。が失われるため、アップロードしたファイルの名前を変更する必要があります。再定義は非常に重要です。この章ではそれについて説明します。アップロードされたファイルの名前はどのように定義すればよいですか?

まず、strstr() 関数を通じてアップロードされたファイルの名前をインターセプトし、アップロードされたファイルのサフィックスを取得します。

次に、time() 関数を通じてシステムの現在のタイムスタンプを取得し、アップロードされたファイルの名前を再定義します

move_uploaded_file() 関数を使用してファイルをアップロードします。

ファイルのアップロードを実行する前に、スクリプトを通じて操作できないファイルの潜在的な攻撃や違法な管理を防ぐために、is_uploaded_file() 関数を使用して、指定されたファイルが HTTP POST を通じてアップロードされたかどうかを確認する必要があります。アップロードされている場合は、戻ります。真 。

is_uploaded_file() 関数

is_uploaded_file() 関数は、指定されたファイルが HTTP POST 経由でアップロードされるかどうかを決定します。その構文は次のとおりです。

is_uploaded_file(filename)
ログイン後にコピー

パラメーター ファイル名は $_FILES['filename'][' と同様に指定する必要があります。 tmp_name'] 変数、クライアントからアップロードされたファイル名は使用できません$_FILES['filename']['name']

アップロードされたファイルの名前を再定義する方法の詳細な例アップロードされたファイルは、悪意のあるユーザーがアップロードできないことを保証するために is_uploaded_file() 関数を通じて判定されます。 /etc/passwd などのアクセスできないファイルにアクセスします。

move_uploaded_file() 関数

move_uploaded_file() 関数は、サーバー内の指定された場所にファイルをアップロードします。成功した場合は true を返します。それ以外の場合は false を返し、構文は次のとおりです

move_uploaded_file(filename,destination)
ログイン後にコピー

パラメーター filename は、アップロードされたファイルの一時ファイル名を指定します。つまり、パラメーターの宛先は、後で保存された新しいパスと名前を参照します。ファイルがアップロードされます。パラメータ filename が正当にアップロードされたファイルでない場合、操作は行われません。パラメータ filename が正当にアップロードされたファイルであるが、何らかの理由で移動できない場合は、

move_uploaded_file() は false を返します。何らかの操作のイベントでは、move_uploaded_file() が False を返し、警告メッセージが発行されます。

最後に rand 関数を使用し、アップロードされたファイルの新しい名前としてランダムに生成されるランダムな整数を使用します。

応用例

この例では、アップロードされるファイルの名前を再定義し、アップロードするファイルの名前を選択し、「アップロード」ボタンをクリックすると、ファイルは、プログラムで指定したローカルパスを変更し、ファイル名を再定義します。

アップロードされたファイルの名前を再定義する方法の詳細な例

この例のキーコードは次のとおりです:

<?PHP
header("content-type:text/html;charset=utf-8");
if(!empty($_FILES[up_picture][name])){                                       //判断上传文件是否为空
    if($_FILES[&#39;up_picture&#39;][&#39;error&#39;]>0){                                    //判断文件是否可以上传到服务器
        echo "上传错误";
        switch($_FILES[&#39;up_picture&#39;][&#39;error&#39;]){
            case 1:
                echo "上传文件大小超出配置文件规定值";
                break;
            case 2:
                echo "上传文件大小超出表单中约定值";
                break;
            case 3:
                echo "上传文件不全";
                break;
            case 4:
                echo "没有上传文件";
                break;
        }
    }else{
        if(!is_dir("./upfile/")){                                           //判断指定目录是否存在
            mkdir("./upfile/");                                             //创建目录
        }
        $path=&#39;./upfile/&#39;.time().strstr($_FILES[&#39;up_picture&#39;][&#39;name&#39;],&#39;.&#39;);//定义文件名称和存储位置
        if(is_uploaded_file($_FILES[&#39;up_picture&#39;][&#39;tmp_name&#39;])){           //判断是否通过HTTP POST上传的
            if(!move_uploaded_file($_FILES[&#39;up_picture&#39;][&#39;tmp_name&#39;],$path)){       //执行上传
                echo "上传失败";
            }else{
                echo "文件".time().$_FILES[&#39;up_picture&#39;][&#39;name&#39;]."上传成功,大小为:".$_FILES[&#39;up_picture&#39;][&#39;size&#39;];
            }
        }else{
            echo "上传文件".$_FILES[&#39;up_picture&#39;][&#39;name&#39;]."不合法!";
        }
    }
}
?>
ログイン後にコピー

アップロードされたファイルの名前を再定義する方法の詳細な例 アップロードされたファイルの名前の定義は、ファイルアップロードプログラムで不可欠な機能である必要があり、これにより、同じ名前のファイルを置き換えると、1 つのファイルに同じ内容のファイルが多数存在する可能性があります。詳細については、PHP ファイル処理のトピック

【おすすめ関連記事】

PHP ファイルのアップロード - move_uploaded_file() 関数の使用方法の詳細な説明を参照してください

以上がアップロードされたファイルの名前を再定義する方法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP アプリケーション: 現在の日付をファイル名として使用します PHP アプリケーション: 現在の日付をファイル名として使用します Jun 20, 2023 am 09:33 AM

PHP アプリケーションでは、現在の日付をファイル名として使用してファイルを保存またはアップロードする必要がある場合があります。日付を手動で入力することもできますが、現在の日付をファイル名として使用する方が便利で、速く、正確です。 PHP では、date() 関数を使用して現在の日付を取得できます。この関数の使用方法は次のとおりです: date(format, timestamp); ここで、format は日付フォーマット文字列、timestamp は日付と時刻を表すタイムスタンプです。このパラメータが渡されない場合は、それが使用されます。

PHP で中国語のファイル名が文字化けする場合のヒント PHP で中国語のファイル名が文字化けする場合のヒント Feb 27, 2024 pm 02:18 PM

PHP で中国語のファイル名が文字化けする場合のヒント 開発プロセス中、特にユーザーがアップロードしたファイルを処理する場合に、中国語のファイル名が文字化けする問題によく遭遇します。 PHP では、文字化けしたファイル名を正しく処理する方法は一般的かつ重要な問題です。この記事では、中国語のファイル名が文字化けする場合に対処するいくつかのテクニックを紹介し、読者がこの課題にうまく対処できるように具体的なコード例を示します。問題の説明: ユーザーがファイルをアップロードすると、中国語のファイル名が文字化けして見えることがあります。これは、オペレーティング システムとブラウザが異なるためです。

Java フォルダーをループしてすべてのファイル名を取得する方法 Java フォルダーをループしてすべてのファイル名を取得する方法 Mar 29, 2024 pm 01:24 PM

Java は、強力なファイル処理機能を備えた人気のあるプログラミング言語です。 Java では、フォルダーを走査してすべてのファイル名を取得するのが一般的な操作であり、これは特定のディレクトリー内のファイルを迅速に見つけて処理するのに役立ちます。この記事では、Java でフォルダーを走査してすべてのファイル名を取得するメソッドを実装する方法と、具体的なコード例を紹介します。 1. 再帰的メソッドを使用してフォルダーを走査する 再帰的メソッドを使用してフォルダーを走査することができます。再帰的メソッドはそれ自体を呼び出す方法であり、フォルダーを効果的に走査できます。

Windows10でファイル名が長すぎて削除できない問題を解決する手順 Windows10でファイル名が長すぎて削除できない問題を解決する手順 Mar 27, 2024 pm 04:41 PM

1. まず、削除する必要があるファイルまたはフォルダーを見つけます。ファイル名が長すぎるため、システムは削除操作を実行するときに「ファイル名が長すぎるため、ファイルまたはディレクトリを削除できません」というメッセージを表示します。図に示すように: 2. このとき、図に示すように、ショートカット キー [Win+R] を使用してファイル名を指定して実行を開き、[cmd] を入力して、確認後にコマンド プロンプトを開きます: 3. 最初にディスクに切り替えます。ファイルがある場所、私のファイルは D にあり、 [D:] と入力し、ファイルが置かれているフォルダーに切り替えます。私のファイルは [1] にあり、[cd1] と入力し、[dir] と入力してすべてを表示しますディレクトリ内のファイルです。私のディレクトリでは、削除する必要があるファイルは 1 つだけです。図に示すように: 4. この時点では [del*.png] と入力します。つまり、接尾辞 png を持つすべてのファイルです。ディレクトリ内には次のようになります

ファイル名を一括変更する方法 ファイル名を一括変更する方法 Nov 09, 2023 am 10:05 AM

ファイル名を一括変更する方法には、mv コマンドを使用する、rename コマンドを使用する、mv コマンドと find コマンドを組み合わせて使用​​する、mmv コマンドを使用するなどがあります。詳細な紹介: 1. mv コマンドを使用します。mv コマンドは、Linux システムでファイルを移動したり名前を変更したりするために使用されるコマンドです。mv コマンドを使用すると、ファイルを別の場所に移動し、同時にファイル名を変更できます。 ; 2. rename コマンドを使用します。rename コマンドは強力なバッチ ファイル名前変更ツールであり、正規表現などを使用してファイル名を照合および置換できます。

path/filepath.Split 関数を使用して、パスをディレクトリとファイル名の部分に分割します。 path/filepath.Split 関数を使用して、パスをディレクトリとファイル名の部分に分割します。 Jul 25, 2023 pm 05:57 PM

path/filepath.Split 関数を使用して、パスをディレクトリとファイル名の 2 つの部分に分割します。プログラムの開発またはファイルの処理では、パスをディレクトリとファイル名の 2 つの部分に分割することが必要になることがよくあります。 Go 言語では、パス/ファイルパス パッケージの Split 関数を使用してこの機能を実現できます。この記事では、Split 関数の使い方とコード例を紹介します。 Split 関数は次のように定義されます。 funcSplit(pathstring)(di

win7システムでファイル名が青色になった場合はどうすればよいですか? win7システムでファイル名が青色になった場合はどうすればよいですか? Jul 20, 2023 pm 11:57 PM

win7システムでファイル名が青色になった場合はどうすればよいですか? win7 システムは現在最も普及している Windows システムであり、非常に長い開発の歴史があり、ユーザーに深く愛されています。しかし、win7 システムにも大小さまざまな問題があり、多くの友人が win7 システムを使用していると、コンピュータ上のファイル名が青くなり、新しく作成された他のフォルダーも青くなります。そしてそれをどうやって解決するのか?以下では、エディターはwin7のシステムファイル名を青色に戻す方法を紹介します。 win7のシステムファイル名が青くなった場合の復旧方法 1. まず、ファイル名が青のディスクを右クリックし、プロパティを開きます。 2. プロパティ ウィンドウで、このドライブを圧縮してディスク領域を節約するオプションを見つけて削除します。

Win11 ではファイルが見つかりません。ファイル名が正しいことを確認してください。解決方法は?詳細 Win11 ではファイルが見つかりません。ファイル名が正しいことを確認してください。解決方法は?詳細 Feb 01, 2024 pm 04:09 PM

win11 コンピュータを使用する場合、ファイル名を直接検索して、必要な情報などをすぐに見つけます。しかし、多くのユーザーは、検索時に、ファイル名が正しいかどうかを確認するポップアップ ボックスが表示されることに気づきます。そうです。では、どうすればよいでしょうか?ユーザーは実行ウィンドウで HKEY_CURRENT_USER パスを直接入力して設定できます。Win11 でファイルが見つからない場合の解決方法をこのサイトで詳しく紹介します。ファイル名が正しいことを確認してください。 Win11 ではファイルが見つかりません。ファイル名が正しいことを確認してください。解決方法は?詳細な方法 1. 1. キーボードの Win+R ショートカット キーを同時に押して、ファイル名を指定して実行ウィンドウを開きます。 3. レジストリエディタでHKEY_CUを展開します。

See all articles