Nelze nahrát obrázek do více složek najednou

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
bluray
Člen | 178
+
0
-

Dobrý den,
nahrávám na web obrázky a ukládám je v originální i zmenšený verzi do www/gallery a do www/gallery/thumbnails.
Problém je v tom, že se ukládají pouze do thumbnails. Jako kdyby nešlo volat 2× move().
Tady je skript:

public function addImages(array $images){
        foreach($images as $image){
            if(!$image->isOk()) continue;

            $path = "/www/gallery/".$image->name;
            $thumbPath = "/www/gallery/thumbnails/".$image->name;
            $image->move($path);
            $image->move($thumbPath);
            $image = Image::fromFile($thumbPath);
            $image->resize(caravanImageWidth, caravanImageHeight)->save($thumbPath);
        }
}

Děkuji za radu

enumag
Člen | 2118
+
0
-

To skutečně nelze. Metoda move pouze volá PHP funkci move_uploaded_file, kterou lze volat poue 1× pro každý nahraný soubor. Použij funkci copy (http://stackoverflow.com/…re-than-once).

bluray
Člen | 178
+
0
-

Děkuji za pomoc, to jsem nevěděl že move_uploaded_file můžu volat jenom jednou :)

iguana007
Člen | 970
+
+1
-

Změn si to takhle a mělo by ti to jít:

public function addImages(array $images){
        foreach($images as $image){
            if(!$image->isOk()) continue;
            $path = "/www/gallery/".$image->name;
            $thumbPath = "/www/gallery/thumbnails/".$image->name;
            $image->move($path);
            $imageToResize = Image::fromFile($path);
            $imageToResize->resize($caravanImageWidth, $caravanImageHeight)->save($thumbPath);
        }
}
CZechBoY
Člen | 3608
+
0
-

To je logické, protože move znamená přesuň. Takže z tempu se soubor přesune kam chceš a v tempu už pak není.