php 上传前将 2 个上传的文件重命名为特定名称

php rename 2 uploaded files to specific names before upload

我目前正在使用以下代码上传和重命名单个文件..

表格..

<form method="post" enctype="multipart/form-data" name="formUploadFile">     
<label>Select file to upload:</label>
<input type="file" name="files[]" multiple="multiple" /> <input type="submit" value="Upload" name="btnSubmit"/>
</form> 

php 的以下片段发挥了神奇作用。

     if($UploadOk == true){
                        $name = "foobar.csv";
                         move_uploaded_file($temp,$UploadFolder."/".$name);
                         array_push($uploadedFiles, $name);
}

但我现在想用它来上传 2 个文件,并希望第一个重命名 foobar.csv,第二个重命名 foobar2.csv 我该怎么做?

我可以毫无问题地上传 2 个文件,并且也可以毫无问题地重命名第一个文件,我的问题在于第二个文件的重命名。

我试过了

$name = array("foobar.csv", "foobar2.csv"); 

尝试过..

if($UploadOk == true){
                        $name = "foobar.csv";
                        $name2 = "foobar2.csv";
                        move_uploaded_file($temp,$UploadFolder."/".$name);
                        array_push($uploadedFiles, $name);
                        array_push($uploadedFiles, $name2);
                                    }

也尝试过..

 if($UploadOk == true){
                            $name = "foobar.csv";
                            $name2 = "foobar2.csv";
                            move_uploaded_file($temp,$UploadFolder."/".$name);
                            array_push($uploadedFiles, $name, $name2);

                                        }

但是其中 none 个上传并重命名了文件。

您需要使用$_FILES['files']['tmp_name']的数组。例如:

if ( $UploadOk == true ) {
    $name = "foobar.csv";
    $name2 = "foobar2.csv";
    move_uploaded_file($_FILES['files']['tmp_name'][0], $UploadFolder."/".$name);
    move_uploaded_file($_FILES['files']['tmp_name'][1], $UploadFolder."/".$name2);
}

你可以这样做..

if($_FILES){
    $files = $_FILES['files'];
    $name = array("foobar.csv", "foobar2.csv"); 
    foreach($files['tmp_name'] as $index => $value){
        move_uploaded_file($value,$name[$index]);
    }
}