【问题标题】:Multiple file uploads to a specific folder多个文件上传到特定文件夹
【发布时间】:2018-04-23 17:45:22
【问题描述】:

我正在尝试在 wordpress 上创建一个插件,我需要将多张图片上传到服务器上的特定文件夹...

我现在有

<form method="post" enctype="multipart/form-data">
<input type="file" name="my_file[]" multiple="multiple">
<input type="submit" value="Upload">
</form>

这是读取并上传文件的代码...

    if (isset($_FILES['my_file'])) {
        $myFile = $_FILES['my_file'];
        $fileCount = count($myFile["name"]);

        for ($i = 0; $i < $fileCount; $i++) {
                $name = $myFile["name"][$i];
                $error_msg = $myFile["error"][$i];

                $success = move_uploaded_file($myFile["tmp_name"][$i], $photo_dir."/".$name);

                if ($success) {
                    echo $name ." uploaded<br>";
                } else {
                    echo $error_msg;
                }

        }
    }

有没有办法让它报告错误-如果文件名已经存在,那么它会覆盖旧版本...

【问题讨论】:

    标签: php wordpress plugins upload


    【解决方案1】:

    当您上传文件时,PHP 将文件存储在一个临时文件夹中。

    您必须将文件从临时文件夹移动到要存储文件的文件夹。

    这是使用您的代码的示例:

    if (isset($_FILES['my_file'])) {
    
        $myFile = $_FILES['my_file'];
        $fileCount = count($myFile["name"]);
    
        // The folder that you want to store the file
        $folderName = 'tmp/';
    
        for ($i = 0; $i < $fileCount; $i++) {
    
            $fileName = $myFile["name"][$i];
    
            $success = move_uploaded_file($myFile["tmp_name"][$i], $folderName . $fileName);
    
            if ($success) {
                echo 'File ' . $fileName . ' uploaded!<br>';
            }
    
        }
    
    }
    

    【讨论】:

    • 谢谢,有没有办法让它在出现错误时停止并报告它,而不是在文件名相同的情况下覆盖旧版本?
    • 您可以使用file_exists 函数检查您尝试上传的文件是否已经存在,如果存在,您可以重命名文件并制作新版本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    相关资源
    最近更新 更多