【问题标题】:php rename 2 uploaded files to specific names before uploadphp在上传之前将2个上传的文件重命名为特定名称
【发布时间】:2020-03-27 12:19:29
【问题描述】:

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

表格..

<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 的以下 sn-p 具有魔力..

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

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

我可以上传两个文件没有问题,重命名第一个也没有问题我的问题是重命名第二个文件。

我试过了

$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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你可以做这样的事情..

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

    【讨论】:

    • 感谢您的帮助,此代码确实重命名了文件,但如果我使用它,上传后我不再收到“成功”消息。我尝试添加 array_push($uploadedFiles, $name);它现在也忽略 $UploadFolder = "tmp_csv_store";而是在此处上传到与脚本完整代码相同的目录pastebin.com/57ps4j00
    • 好的,在代码中的这一行(第 53 行)中进行更改 move_uploaded_file($temp,$UploadFolder."/".$name); -----move_uploaded_file($temp,$UploadFolder."/".$name[$key]);
    • 非常感谢您的快速回复,我在等待时尝试了另一个答案,并让它与那个很好。如果我能接受 2 个答案,我会接受,但我会把它交给另一个答案,因为那是我第一次按照我想要的方式工作。再次感谢您的帮助和时间。
    猜你喜欢
    • 2018-12-22
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 2014-04-02
    • 2012-05-04
    • 2018-09-13
    • 1970-01-01
    • 2016-09-21
    相关资源
    最近更新 更多