HttpUploadedFile::move(): Chyba: No error. Aneb moje oblíbená třída :-)

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

Ahojte,
po delší době se ozývám, teď se mi několikrát stalo, že pokud největší pravděpodobností existuje soubor, kam se přesouvá na windows se na řádku, kde se volá rename objeví warning:

rename(D:\www\...a18f7,D:\w...8f7.js): No error

Tedy po přečtení tohoto: http://stackoverflow.com/…ction-in-php bych navrhoval přidat podmínku, pokud soubor již existuje, vyhodit výjimku.

David Grudl
Nette Core | 8228
+
0
-

Předpokládám, že se tak děje jen v PHP 5.2, že?

Honza Kuchař
Člen | 1662
+
0
-

Bohužel to není pravda, je to PHP 5.3.2.

David Grudl
Nette Core | 8228
+
0
-

A k přejmenování dojde nebo ne?

Honza Kuchař
Člen | 1662
+
0
-

Tehdy se nepřejmenoval. Ale tohle se velmi špatně reprodukuje. Vypadá to, že se to stává jen při velkém množství přesunů. Prostě teď to funguje a funguje. (a nic jsem od té doby neměnil)

Vlastně ano. Nainstaloval jsem Win7 SP1. Windows 7 bez SP obsahuje zvláštní chybu, která souvisela s přejmenováváním souborů na NTFS při zapnuté indexovací službě. Občas to při velkém množství, či opakovaných přesunech prostě operaci zablokovalo, operace neproběhla a pártyšna byla označena jako poškozená, takže ji poté proházel chkdsk po restartu PC. (stávalo se mi to občas i se SVN)

Více inforamcí zde: http://serverfault.com/…and-unreadab, na stránkách Microsoftu popis chyby raději odstanili, ale ještě zůstal v archivu google: http://webcache.googleusercontent.com/search?…