Form upload obrázku jak dát celou cestu
- pux
- Člen | 14
Jakou cestu nastavuješ? Nahrávaný soubor ti z formuláře přijde jako
Nette\Http\FileUpload
, který má (mimo jiné) metody
hasFile()
a move()
. Tu první použij pro ověření,
že byl soubor skutečně nahrán, tu druhou pro samotné uložení
nahrávaného souboru, kde jako parametr předáváš cestu.
if ($myFile->hasFile()) {
$myFile->move(__DIR__ . '/images/' . $myFile->getSanitizedName());
}
Pokud to nestačí takto, přidej svůj kód, který používáš, ať se dá podívat, kde může být chyba.
- Michal007
- Člen | 6
Děkuji za odpověď já nic nepoužívám pak, jen to vemu z toho formuláře a přes this->database->tablet(‚xy‘)->insert ([‚title‘=>$value->title,
//Tady ta fotka do databaze
‚photo‘=>$value->photo,
Pak tam mám další inputy omlouvám se ale píší z mobilu k PC se dostanu
až pozdě večer. Takže mám před to přidat nějakou proměnou do toho
uložit tu value photo a provec s ní jednu s těch funkci ??
- Keeehi
- Člen | 36
Když se nahrává soubor na server, tak je vždy uložen do nějaké
nastavené dočasné složky. Aby se tam nehromadily, tak jsou po skončení
požadavku zase automaticky smazány. Pokud chceš ten soubor na serveru nechat
na trvalo (a to ty chceš), musíš si jeho obsah zkopírovat, nebo ho
přesunout nějak jinam. Jak se to dělá ti napsal @pux
Do databáze asi budeš chtít uložit cestu k tomu souboru. Takže
přibližně něco takového
'photo' => __DIR__ . '/images/' . $myFile->getSanitizedName()
- Michal007
- Člen | 6
tak jo nějak mi to nejde :D
dávam dolu kod
public function productFormSucceeded(array $values): void
{
if($values['photo']->hasFile()){
$values['photo']->move(__DIR__ .'www/image/'.$values['photo']);
}
$this->database->table('products')->insert([
'title'=>$values['title'],
'descriptions'=>$values['description'],
'amount'=>$values['amount'],
'price'=>$values['price'],
'photo'=>__DIR__.'www/image/'.$values['photo'],
'alt'=>$values['alt'],
když to zapnu chce to po mě ve winech 777 oprávnění
Editoval Michal007 (14. 4. 2021 7:40)