pridani hashe za jmeno souboru

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

Ahoj prosim nevite mi poradit jak spravne pridat hash za jmeno souboru.
Zkousel jsem neco takove ale neprida mi to nic.

$file = $values['csv'];
        $folder = '/parking.csv'. hash_file('md5', $file->getTemporaryFile());
        $file->move($folder.'/parking.csv','r');
        $fileOpen = fopen($file,'r');

kde mam chybu???

Dekuji moc za radu

parti
Člen | 117
+
0
-

zkousel jsem taky tohle

$file->move($folder.'/parking.csv','r'. md5_file($folder));

ale vyhodi my to chybu

md5_file(CSV/2017/01/12): failed to open stream: Permission denied

Editoval parti (12. 1. 2017 11:27)

uestla
Backer | 799
+
0
-

Ahoj.

Permission denied znamená, že nemáš práva pro zápis do složky.

$folder = '/parking.csv'. hash_file('md5', $file->getTemporaryFile());

ti vytvoří řetězec typu /parking.csv79c2b46ce2594ecbcb5b73e928345492.

V dalším kroku

$file->move($folder.'/parking.csv','r');

se snažíš nahraný soubor uložit do /parking.csv79c2b46ce2594ecbcb5b73e928345492/parking.csv. Metoda move() má pouze jeden parametr, čili 'r' můžeš vynechat.


Tipnu si, že se pokoušíš o něco takového:

$file->move('/parking.csv'. hash_file('md5', $file->getTemporaryFile()));

Je to tak?

parti
Člen | 117
+
0
-

ano.
Cile je k jmenu toho souboru dat nejaky unikatni identifikator.
Takze mam patrat po pravech ?

Editoval parti (12. 1. 2017 12:57)

parti
Člen | 117
+
0
-

hm stim zapisem od tebe mi to vyhodi chybu

move_uploaded_file(): The second argument to copy() function cannot be a directory

Nezmo
Člen | 7
+
0
-

Možná jsem opice, ale chceš se dostat k výsledku, kdy chceš dát ke každému souboru (ne složce) identifikátor? Pokud máš soubor parking.csv tak musíš ten hash napsat před .csv pak budeš mít parking_79c2b46ce2594ecbcb5b73e928345492.csv apod.

parti
Člen | 117
+
0
-

ano uz jesem to opravil a teda dal som tam substr. takto

$file->move(substr(md5(rand()), 0, 7).'/parking.csv');

ale nic to nevytvori projede to ale jmeno souboru zustane stejen beze zmeny

Nezmo
Člen | 7
+
0
-

parti napsal(a):

ano uz jesem to opravil a teda dal som tam substr. takto

$file->move(substr(md5(rand()), 0, 7).'/parking.csv');

ale nic to nevytvori projede to ale jmeno souboru zustane stejen beze zmeny

Netuším, co dělá přesně move, ale podle mě potřebuješ:
starou cestu

$file->move('staraCesta/stareJmeno','NovaCesta/noveJmeno');

tzn.

$file->move('staraCesta/stareJmeno','/parking_'.substr(md5(rand()), 0, 7).'.csv');
Michal Hlávka
Člen | 190
+
+1
-

Zkus do move hodit absolutni cestu, nezapomen aby slozka do ktere to presouvas mela dostatecna opravneni.

Michal Hlávka
Člen | 190
+
+2
-

Nezmo napsal(a):

parti napsal(a):

ano uz jesem to opravil a teda dal som tam substr. takto

$file->move(substr(md5(rand()), 0, 7).'/parking.csv');

ale nic to nevytvori projede to ale jmeno souboru zustane stejen beze zmeny

Netuším, co dělá přesně move, ale podle mě potřebuješ:
starou cestu

$file->move('staraCesta/stareJmeno','NovaCesta/noveJmeno');

tzn.

$file->move('staraCesta/stareJmeno','/parking_'.substr(md5(rand()), 0, 7).'.csv');

https://api.nette.org/…oad.php.html#…

Co si pred prispevkem do fora aspon tu funkci otevrit? :)

Editoval Michal Hlávka (12. 1. 2017 13:29)

parti
Člen | 117
+
0
-

ok tak takhle mi to vytvori to co potrebuji

$file->move($folder. '/parking'.'_'.substr(md5(rand()), 0, 8).'.'.'csv');

parking_1234567.csv

nevim je to spravne takto?

parti
Člen | 117
+
0
-

aha pozeram ze to podtrzitko sa da napsat jinak.
Dik hned to opravim