ホームページ > バックエンド開発 > PHPの問題 > PHPでファイルをアップロードして名前を変更する方法

PHPでファイルをアップロードして名前を変更する方法

PHPz
リリース: 2023-03-23 14:44:01
オリジナル
2351 人が閲覧しました

PHP は一般的に使用される Web 開発言語です。多くの Web サイトは PHP を使用して開発および保守されており、最も一般的な機能の 1 つはファイルのアップロードです。 PHP では、ファイルのアップロード プロセスは比較的単純ですが、アップロードされたファイルの名前を変更する必要がある場合があります。

この記事では、PHPでファイルをアップロードする方法と、アップロードしたファイルの名前を変更する方法を紹介します。

1. ファイルのアップロード

PHP では、ファイルのアップロードには $_FILES スーパー グローバル配列が使用されます。この配列には、アップロードされたファイルの名前、サイズ、タイプなど、アップロードされたファイルに関する情報が含まれています。

以下は、簡単なファイル アップロード コードの例です:

if(isset($_FILES['file'])){
    $file_name = $_FILES['file']['name'];
    $file_tmp_name = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
    $file_error = $_FILES['file']['error'];

    //将上传的文件移动到指定目录
    move_uploaded_file($file_tmp_name, $file_name);
}
ログイン後にコピー

上記のコードでは、まず isset() 関数を使用して $_FILES['file'] が設定されているかどうかを確認し、次にスーパーグローバルから、ファイル名、一時ファイル名、ファイルサイズ、ファイルタイプ、エラー情報など、配列内のアップロードされたファイルの詳細情報を取得します。最後に、move_uploaded_file() 関数を使用して、ファイルを一時フォルダーから指定したディレクトリに移動します。

2. アップロードされたファイルの名前を変更します

ファイル名の競合を回避したり、セキュリティを強化するために、アップロードされたファイルの名前を変更する必要があるとします。ファイル名の変更は、PHP の既製の関数を使用して行うことができます。

関数 1: rename()

rename() 関数を使用して、アップロードされたファイルの名前を変更できます。 rename() 関数には、元のファイル名と新しいファイル名という 2 つのパラメータがあります。

if(isset($_FILES['file'])){
    $file_name = $_FILES['file']['name'];
    $file_tmp_name = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
    $file_error = $_FILES['file']['error'];

    //将上传的文件移动到指定目录,并改变文件名称
    $new_name = "newfile.jpg";
    $new_path = "uploads/".$new_name;
    move_uploaded_file($file_tmp_name, $new_path);
    
    rename($new_path, "uploads/".rand(1000, 9999)."_".$new_name);
}
ログイン後にコピー

上記のコードでは、まずアップロードされたファイルを指定されたディレクトリに移動し、アップロードされたファイルの名前を newfile.jpg に変更します。次に、rename() 関数を使用して、ファイル名をアンダースコアを含む乱数と元のファイル名 newfile.jpg に変更します。乱数とタイムスタンプを使用すると、ファイル名の重複を回避し、ファイルのアップロードのセキュリティを向上させることができます。

関数 2: move_uploaded_file()

ファイルを移動およびアップロードする場合、move_uploaded_file() 関数を直接使用してファイル名を変更できます。

if(isset($_FILES['file'])){
    $file_name = $_FILES['file']['name'];
    $file_tmp_name = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
    $file_error = $_FILES['file']['error'];

    //修改上传文件的名称
    $new_name = "newfile.jpg";
    move_uploaded_file($file_tmp_name, "uploads/".rand(1000, 9999)."_".$new_name);
}
ログイン後にコピー

上記のコードでは、まずアップロードされたファイルの詳細を取得し、次にアップロードされたファイルを指定されたディレクトリに移動し、ファイル名を乱数とアンダースコアを加えた新しいファイル名 newfile に変更します。 jpg。

概要

この記事では、PHP でファイルをアップロードする方法と、アップロードされたファイルの名前を変更する方法に関する 2 つの方法を紹介しました。1 つは rename() 関数を使用する方法です。そしてmove_uploaded_file()関数。ファイルアップロード機能の安全性と安定性に関しては、どちらの方法にも一長一短があり、実情に応じて選択する必要があります。いずれの場合も、ファイルのアップロードのセキュリティと信頼性を確保するには、適切なコーディング慣行に従う必要があります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート