0

複数のファイルをアップロードするフォームがあります。私が使用しているphpコードは正常に動作しますが、ファイルの名前も変更したいのですが、どうすればよいかわかりません。名前にタイムスタンプを追加するのが最良の答えだと思います。これまでの作業コードは次のとおりです。

/* FILE UPLOAD CODE */
{
    $number_of_file_fields = 0;
    $number_of_uploaded_files = 0;
    $number_of_moved_files = 0;
    $uploaded_files = array();
    $upload_directory = dirname(__file__) . '/uploads/'; //set upload directory
    /**
     * we get a $_FILES['file'] array ,
     * we procee this array while iterating with simple for loop
     * you can check this array by print_r($_FILES['file']);
     */
    for ($i = 0; $i < count($_FILES['file']['name']); $i++) {
        $number_of_file_fields++;
        if ($_FILES['file']['name'][$i] != '') { //check if file field empty or not
            $number_of_uploaded_files++;
            $uploaded_files[] = $_FILES['file']['name'][$i];
            if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $upload_directory . $_FILES['file']['name'][$i])) {
                $number_of_moved_files++;
            }

        }

    }

}
/* END FILE UPLOAD CODE */

何を追加し、どこでこれを達成するかについての助けをいただければ幸いです。

4

2 に答える 2

0

move_uploaded_file() の 2 番目のパラメーターとして新しいファイル名を指定できます。

例えば:

move_uploaded_file($_FILES['file']['tmp_name'][$i], $upload_directory . "new_file_name");
于 2013-05-29T16:45:50.533 に答える
0

アップロードされたすべてのファイルに同じ名前を付けたい場合は、 を使用して名前を取得できます$_GET。例えば:

<form action="upload.php" method="post"> \\ this would send it to your page
<input type='text' size='30' name='filename'/>
<input type='submit' /> 
</form>

$_GETこのように使用して名前を取得するだけです

$name = $_GET['filename'];

コードを実行しますが、この名前のファイルを次のように移動します

move_uploaded_file($_FILES['file']['tmp_name'][$i], $upload_directory .         $name[$i])
于 2013-05-29T16:54:34.867 に答える