Přejmenování souboru při uploadu

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

Ahoj, zkouším dát do kupy podle sebe upload obrázku a jeho přejmenování. Zkusil jsem toho:

$fileName = $file->name;
$firstfile = rename($fileName, $form->values->title);

Ale laděnka mě po potvrzení formu vyhodí jenom Warning u druhého řádku. Žádná další hláška, nic. Mohu takhle použít fci rename? A jak ještě oddělit příponu od názvu abych k tomu názvu mohl ještě něco dalšího přidat a následně tu příponu zase připojit?

Díky

s4muel
Člen | 92
+
0
-

skus ci je subor uploadnuty vporiadku – metoda isOk() https://api.nette.org/…eUpload.html#…
a potom pouzi metodu move() https://api.nette.org/…eUpload.html#…

if($file->isOk()) {
    $file->move('...cesta_k_suboru/novy_nazov_suboru.jpg);
}
xciza
Člen | 194
+
0
-

zkusil jsem:

$imgUrl = '/images/projects/' . $form->values->title;
             if($file->isOk()) {
                 $file->move($imgUrl . '/' . $form->values->title . '_big.png');

             }

Ale to me ani slozku nevytvoří…

David Matějka
Moderator | 6445
+
0
-

slozku musis vytvorit rucne

xciza
Člen | 194
+
0
-

No nevim, nikdy jsem nemusel. Stacil me move() a složka se vytvořila sama.

EDIT: ani mkdir nepomuze

mkdir('/images/projects/' . $form->values->title, 0777);

Editoval xciza (12. 11. 2013 20:43)

David Matějka
Moderator | 6445
+
0
-

ajo, koukam, ze nette vytvari slozku samo :)

no tak pravdepodobne ti to rika nejakou chybu, ne? predpokladam, ze to budou nedostatecna opravneni…

xciza
Člen | 194
+
0
-

Prave ze zadna chyba a prava jsou v pohode.

s4muel
Člen | 92
+
0
-

cesta k suboru /images/projects/ je kompletna? nemas to este nejako hlbsie?

$imgUrl = '/var/www/.../images/projects/' . $form->values->title;
Majkl578
Moderator | 1364
+
0
-

xciza napsal(a):

Prave ze zadna chyba a prava jsou v pohode.

Paráda, tedy když to funguje bezchybně, tak vlastně žádný problém nemáš? Svoje soubory doufám hledáš ve složce /images/projects/ (tj. images je v rootu filesystemu).

iNviNho
Člen | 352
+
0
-
<?php
$imgUrl = WWW_DIR. '/images/projects/' . $form->values->title;
?>

WWW_DIR je konštanta, ktorý si musiš definovat pomocou define() v bootstrape … pomocou tejto konst sa dostaneš do adresara www a tam už môžeš chodiť kde chceš …

Majkl578
Moderator | 1364
+
0
-

iNviNho napsal(a):

<?php
$imgUrl = WWW_DIR. '/images/projects/' . $form->values->title;
?>

WWW_DIR je konštanta, ktorý si musiš definovat pomocou define() v bootstrape

Není doporučované používat tyto globální konstanty. Namísto toho by sis cestu měl předat z DI containeru do konkrétní service (popř. si ji v presenteru získat z kontextu).

iNviNho
Člen | 352
+
0
-

To mi pripomína niečo ako keď sa hovorí, že v renderMetode je neskoro načitavať data, ešte som sa nestretol s tým, že by to nefungovalo.

A naozaj nerozumiem, prečo by táto konštanta mohla sposobiť nejaký problém ak je načitána uplne na začiatku applikácie.

Možno sa mýlim

Majkl578 napsal(a):

iNviNho napsal(a):

<?php
$imgUrl = WWW_DIR. '/images/projects/' . $form->values->title;
?>

WWW_DIR je konštanta, ktorý si musiš definovat pomocou define() v bootstrape

Není doporučované používat tyto globální konstanty. Namísto toho by sis cestu měl předat z DI containeru do konkrétní service (popř. si ji v presenteru získat z kontextu).

romiix.org
Člen | 343
+
0
-

Neide o to, že by to nefungovalo. Iba sa FW snaží viesť k používniu DI a nie statických konštánt. Viac to zapadá do ceľkového konceptu.

Majkl578
Moderator | 1364
+
0
-

iNviNho napsal(a):

To mi pripomína niečo ako keď sa hovorí, že v renderMetode je neskoro načitavať data, ešte som sa nestretol s tým, že by to nefungovalo.

Nic takového nikde nikdo neříká a pokud ano, mýlí se, naopak je to správné. Z hlediska filozofie je tu pozdě jen na přesměrování.

xciza
Člen | 194
+
0
-

Díky, vyřešeno. Chyběla mě tam cesta do WWW_DIR, kterou jsem si získal pře kontext a vše jede.