2014-07-25 2 views
0

한 폴더의 모든 이미지를 가져 와서 다른 폴더로 복사 한 다음 원래 폴더와 내용을 삭제하는 일부 코드 작업 중입니다.PHP 한 폴더에서 다른 폴더로 모든 이미지 폴더 복사

나는이 :

copy('images/old-folder/*', 'images/new-folder/'); 
unlink('images/old-folder/'); 

하지만이 작동하지 않습니다 :(하지만 내가 파일을 통해 복사 해달라고 말은 작동하지 않고 기존 폴더가 삭제되지 않습니다 :(

에게 I를도 시도 :

system('cp images/old-folder/* images/new-folder/'); 

그것은 도와주세요 :(작업 중 하나를하지 않았다 심지어로 시도

합니다. 두 폴더의 권한을 변경 :

chmod('images/old-folder/', 0777); 
chmod('images/new-folder/', 0777); 
+0

당신이 완전한 경로를 시도인가? 계정에 사용 권한이 있습니까? –

+0

'copy()'는 문서에서 말한 것처럼 하나의 디렉토리가 아니라 하나의 파일에서만 작동하도록되어 있지 않습니다. 순수 PHP 솔루션에 대해서는 [이 답변] (http://stackoverflow.com/a/7775949/180709)을 참조하십시오. 가능하다면 조심스럽게 사용해야하는 쉘 호출을 사용하지 마십시오. – zopieux

답변

2
foreach(glob('images/old-folder/*') as $image) { 
    copy($image, 'images/new-folder/' . basename($image)); unlink($image); 
} 
rmdir('images/old-folder'); 

확인 문서를 : glob, rmdir은 또한 당신은 RMDIR 유용에 대한 사용자 의견을 찾을 수 있습니다.

편집 :

실제 경로가 아닌 디렉토리되어야하는 복사 기능에 제 파라미터를 추가 basepath.

+0

이 다소 작동, 그것은 이미지와 폴더를 제거하지만 새 폴더에 이미지를 복사하지 않습니다 – user3723240

+0

메신저에 복사하기 전에 이미지의 사용 권한을 변경하려고 메신저 – user3723240

+0

그 중 하나도 작동하지 않는다면 : – user3723240

0
<?php 

$src = 'pictures'; 
$dst = 'dest'; 
$files = glob("pictures/*.*"); 
     foreach($files as $file){ 
     $file_to_go = str_replace($src,$dst,$file); 
     copy($file, $file_to_go); 
     } 

?> 

여기 찾았 PHP copy all files in a directory to another? 다음

0

작동합니다 @Prasanth에서 수정 된 버전 (테스트하지)

<?php 
    $oldfolder = 'images/new-folder'; 
    $newfolder = 'images/old-folder'; 

    $files = glob($oldfolder . '/*'); 

    foreach($files as $file){ 
     $filename = basename($file); 
     copy($file, $oldfolder . '/' . $filename); 
     unlink($file); 
    } 
    rmdir($oldfolder); 
?> 
관련 문제