【发布时间】:2015-06-08 15:49:22
【问题描述】:
我目前正在使用以下方法将图像上传到文件夹中,但我发现出于我的特定目的,我需要在上传图像时复制图像并将其添加到目录中稍高一点的文件夹中。
示例:图像文件被上传到 /folder/folder/images,这很好。我在那里需要它。但是,我在这里还需要具有相同文件名的相同文件的副本:/folder/images
这是我用来上传图片的 PHP。上传新图片时,如何修改它以复制并添加到其他文件夹?
<?php
// A list of permitted file extensions
$allowed = array('png', 'jpg', 'gif','zip');
if(isset($_FILES['file']) && $_FILES['file']['error'] == 0){
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if(!in_array(strtolower($extension), $allowed)){
echo '{"status":"error"}';
exit;
}
if(move_uploaded_file($_FILES['file']['tmp_name'],
'images/'.$_FILES['file']['name'])){
$tmp='images/'.$_FILES['file']['name'];
echo 'images/'.$_FILES['file']['name'];
//echo '{"status":"success"}';
exit;
}
}
echo '{"status":"error"}';
exit;
?>
更新:
这是让我工作的代码:
<?php
// A list of permitted file extensions
$allowed = array('png', 'jpg', 'gif','zip');
if(isset($_FILES['file']) && $_FILES['file']['error'] == 0){
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if(!in_array(strtolower($extension), $allowed)){
echo '{"status":"error"}';
exit;
}
if(move_uploaded_file($_FILES['file']['tmp_name'],'images/'.$_FILES['file']['name'])){
$tmp='images/'.$_FILES['file']['name'];
$new = '../images/'.$_FILES['file']['name']; //adapt path to your needs;
if(copy($tmp,$new)){
echo 'images/'.$_FILES['file']['name'];
//echo '{"status":"success"}';
}
exit;
}
}
echo '{"status":"error"}';
exit;
?>
【问题讨论】:
-
为什么不在第一次执行后再次重复
if(move_uploaded_file)(第一次使用 copy() 并移动第二次?)? -
听起来好像可行,没想到……我试试
-
如果您需要我将其作为整个代码的解决方案,请告诉我。
-
那会很有帮助...谢谢
-
是的,这真的很容易做到。