Přesunutí obrázku nefunkční
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- PavelS
- Člen | 66
Ahoj, nefunguje mi přesunutí obrázku do složky, nevíte čím to může být? Pokud tu adresu zadám relativně, tak to funguje, ale není to použitelné pro všechny presentery.
$filename = $this->getUser()->identity->data['username'];
$targetPath = $this->getHttpRequest()->getUrl()->getBasePath();
$pripona = pathinfo($values['img']->getSanitizedName(), PATHINFO_EXTENSION);
$cil=$targetPath."images/location/$filename.$pripona";
$values['img']->move("$cil");
- GEpic
- Člen | 566
A zkusil si použít jen toto?
$cil="images/location/$filename.$pripona";
$values['img']->move($cil);
Automaticky by ti to mělo zapsat do složky www/images/location/
Používám to také tak, navíc ve službě a funkci na přidání souboru
můžu volat odkudkoliv.
Editoval GEpic (19. 2. 2016 19:41)
- Martk
- Člen | 661
Znovupoužitelná třída:
class Uploader {
/** @var string */
private $wwwDir;
public function __construct($wwwDir) {
$this->wwwDir = $wwwDir;
}
public function upload(Nette\Http\FileUpload $file, $path) {
$file->move($absolute = $this->wwwDir . '/' . $path);
return $absolute;
}
}
Registrace:
services:
- Uploader(%wwwDir%)
Použití:
class MyClass {
private $uploader;
public function __construct(Uploader $uploader) {
$this->uploader = $uploader;
}
public function myFunction() {
$filename = $this->getUser()->identity->data['username'];
$pripona = pathinfo($values['img']->getSanitizedName(), PATHINFO_EXTENSION);
$this->uploader->upload($values['img'], "images/location/$filename.$pripona");
}
}
Editoval Antik (19. 2. 2016 20:36)