2017-03-08 29 views
0

我有一個名爲圖片的文件夾(在服務器端),並且會不斷添加圖片,我想要一個可以移動該文件夾中所有圖片的功能(圖像)放在圖像文件夾內的另一個文件夾(用實際月份的編號調用)上。所以我基本上會有一個文件夾圖像與其他文件夾,每個文件夾有月份編號,所以可以說今天的文件夾03(三月)。在php文件夾中移動一個圖片數組路徑/名稱

這是迄今爲止功能:

public function createCurrentMonthFolder() { 
     $month = date("m"); 
     $directory = "./images/".$month; 
     if(!is_dir($directory)){ 
      mkdir($directory, 775, true); 
      } 
     $source= "./images"; 
     $images = glob('./images/*.{jpg,gif,png}', GLOB_BRACE); 
     $dest = "./images/".$month; 
     var_dump($images); 
     copy($source, $dest); 
     unlink($source); 
    } 

所以第一部分將檢查當前月份的文件夾已經存在(如果不是創建它)。在$圖像變量,我會得到這樣的圖像名稱的數組:

array(2) { [0]=> string(19) "./images/14.jpg" [1]=> string(17) "./images/ji.jpg" } 

我想移動所有的圖像在$ DEST,這實際上是當月的文件夾名稱。

問題是,copy()只接受一個文件,而不是我發送的數組,並且還取消了鏈接()將要獲取文件而不是目錄。

那麼如何將圖片陣列移動到我想要的文件夾並從圖像文件夾中刪除它們?謝謝!

回答

0

你可以做一個循環來訪問數組,

foreach($images as $image){ 
copy($image, $dest); 
unlink($image); 
} 
+0

我會得到這樣的警告:消息:副本()的第二個參數複製( )功能不能作爲目錄,之後圖像將被刪除。似乎$ dest var不能是一個dir。 –

0

也許這可以幫助你:

 

    $all_files = scandir('/home/user/Desktop/images'); 

    $source = '/home/user/Desktop/images/' ; 
    $destination = '/home/user/Desktop/images/03/'; 

    foreach($all_files as $files){ 
     if(is_file($source.$files)){ 
      rename($source.$files,$destination.$files); 
     } 
    } 

+0

我不明白重命名的事情會有幫助嗎?我錯過了什麼?我已經定義了我想要將圖像移動到變量中的路徑。 –

+0

您可能會定義直到文件夾的路徑。不要只指定路徑直到文件夾。按照上面給出的示例,指定源和目標中的文件名直到文件名的路徑。 –

+0

就像我上面所說的那樣,我會在那裏得到很多的圖片,隨機的名字,隨機數字,我想在幾個月內組織它們,我不會知道每個人都會是他的名字。 –

相關問題