Form upload obrázku jak dát celou cestu

Michal007
Člen | 6
+
0
-

Ahoj mám problém používam form addUpload pro uložení obrázku a nahraní cesty k obrázku ale vubec nevím jak na to ?
Když to udělam normálně tak se mi nahraje jen cesta ke xampp.
Prosím poraďte díky Michal

pux
Člen | 14
+
+1
-

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
+
0
-

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
+
0
-

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
+
0
-

Ty jo super děkuji 👍

Michal007
Člen | 6
+
0
-

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)

Keeehi
Člen | 36
+
0
-

Myslím, že problém bude spíš v neexistující složce. Schválně si dumpni

__DIR__ .'www/image/'.$values['photo']

Před www nemáš lomítko. Ale můžou být s tou cestou i jiné problémy. Nejdříve tedy ověř, že ta hodnota je opravdu taková, jaká si myslíš že by tam měla být.