Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP copy无法复制文件,但未报告任何错误_Php_Copy_Mkdir - Fatal编程技术网

PHP copy无法复制文件,但未报告任何错误

PHP copy无法复制文件,但未报告任何错误,php,copy,mkdir,Php,Copy,Mkdir,我正在尝试将3个文件从现有文件夹复制到刚刚使用mkdir创建的新文件夹。到目前为止没有运气。这些文件不会复制到文件夹中,PHP也没有报告任何错误。我用PHP语法检查器在线检查了代码,结果很好 我认为copy命令中的格式错误,但我不确定具体问题是什么。我曾尝试在要复制的文件和目标上使用“无引号”和“单引号”,但都不起作用。我仔细检查了要复制的文件的url,它是正确的 如有任何建议,将不胜感激 protected function handle_file_upload($uploaded_file

我正在尝试将3个文件从现有文件夹复制到刚刚使用mkdir创建的新文件夹。到目前为止没有运气。这些文件不会复制到文件夹中,PHP也没有报告任何错误。我用PHP语法检查器在线检查了代码,结果很好

我认为copy命令中的格式错误,但我不确定具体问题是什么。我曾尝试在要复制的文件和目标上使用“无引号”和“单引号”,但都不起作用。我仔细检查了要复制的文件的url,它是正确的

如有任何建议,将不胜感激

 protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
            $index = null, $content_range = null) {
        $file = new \stdClass();
        $file->name = $this->get_file_name($uploaded_file, $name, $size, $type, $error,
            $index, $content_range);
        $file->size = $this->fix_integer_overflow((int)$size);
        $file->type = $type;
        if ($this->validate($uploaded_file, $file, $error, $index)) {
            $this->handle_form_data($file, $index);
            $upload_dir = $this->get_upload_path();
            if (!is_dir($upload_dir)) {
                mkdir($upload_dir, $this->options['mkdir_mode'], true);
             //Attempting to add new code below
             //let's secure the new folders with 3 copied files
              $copy1 =copy(/files/.gitignore, '$upload_dir'.'/.gitignore');
              $copy2 =copy(/files/.htaccess, '$upload_dir'.'/.htaccess');
              $copy3 =copy(/files/index.html, '$upload_dir'.'/index.html');
            }
            $file_path = $this->get_upload_path($file->name);
            $append_file = $content_range && is_file($file_path) &&
                $file->size > $this->get_file_size($file_path);
            if ($uploaded_file && is_uploaded_file($uploaded_file)) {
                // multipart/formdata uploads (POST method uploads)
                if ($append_file) {
                    file_put_contents(
                        $file_path,
                        fopen($uploaded_file, 'r'),
                        FILE_APPEND
                    );
                } else {
                    move_uploaded_file($uploaded_file, $file_path);
                }
            } else {
                // Non-multipart uploads (PUT method support)
                file_put_contents(
                    $file_path,
                    fopen('php://input', 'r'),
                    $append_file ? FILE_APPEND : 0
                );
            }
            $file_size = $this->get_file_size($file_path, $append_file);
            if ($file_size === $file->size) {
                $file->url = $this->get_download_url($file->name);
                if ($this->is_valid_image_file($file_path)) {
                    $this->handle_image_file($file_path, $file);
                }
            } else {
                $file->size = $file_size;
                if (!$content_range && $this->options['discard_aborted_uploads']) {
                    unlink($file_path);
                    $file->error = $this->get_error_message('abort');
                }
            }
            $this->set_additional_file_properties($file);
        }
        return $file;
    }

可能问题是在复印时给pagth。尝试给出要保存文件的文件夹的完整路径。感谢您的评论。我使用了您的建议并更改了如下代码:“$copy1=copy('/files/.gitignore','/files/'.$upload_dir'./.gitignore')$copy2=copy('/files/.htaccess','/files/'.$upload_dir'./.htaccess')$copy3=copy('/files/index.html','/files/'.$upload_dir'./index.html');'还是同样的问题,创建新文件夹时文件没有复制。我想说的只是硬编码新创建目录的完整路径,然后尝试执行复制。如果发生这种情况,那么您给出的路径是不正确的,或者您的代码从开头就不能正常工作。谢谢您的帮助。这是一个路径问题,也是一个语法问题。这是实际工作的格式:“$copy1=copy('files/.gitignore','files/'。“$test.'/.gitignore');”很高兴你的问题解决了。