2017-03-08 4 views
0

画像(サーバ側)というフォルダがあり、画像が追加されます。常にそのフォルダからすべての画像を移動する機能が必要です画像フォルダ内にある別のフォルダ(実際の月の番号で呼び出されたフォルダ)の画像(画像)を表示します。だから私は基本的に月の番号を持つそれぞれ別のフォルダとフォルダイメージを持っているので、今日のためにフォルダ03(3月)を言うことができます。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()は私が送る配列ではないファイルだけを受け取り、unlink()はdirではなくファイルを取得したいということです。

画像の配列を希望のフォルダに移動し、画像フォルダから削除するにはどうすればよいですか?ありがとうございました!

答えて

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

私が上で述べたように、私はそこにたくさんの画像、ランダムな名前、それらのランダムな番号をつけ、数ヶ月でそれらを整理したいと思う、私は彼の名前になるそれぞれについて知る必要はない。 –

関連する問題