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
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
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).
- iguana007
- Člen | 970
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);
}
}