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