[php将2个上传的文件重命名为特定名称,然后再上传

问题描述 投票:0回答:2

我当前正在使用以下代码来上传并重命名单个文件。

表格..

<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个文件没有问题,并且也可以重命名第1个文件,我的问题是重命名第二个文件。

我已经尝试过

$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);

                                        }

但是这些都不上传并重命名文件。

php upload file-rename
2个回答
2
投票

您需要使用$_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);
}

1
投票

您可以做这样的事情。

if($_FILES){
    $files = $_FILES['files'];
    $name = array("foobar.csv", "foobar2.csv"); 
    foreach($files['tmp_name'] as $index => $value){
        move_uploaded_file($value,$name[$index]);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.