Autor | Zpráva | ||
---|---|---|---|
Keilew Profil |
#1 · Zasláno: 14. 3. 2013, 21:02:21
Zdravím,
zatím jsem nenašel uspokojivou odpověď na otázku, jak zjistit pomocí PHP, že se souborem, kterých chci číst, je právě manipulováno přes FTP (je přepisován). Důvod je prostý - může se stát, že čtu soubor, který není momentálně úplný, což může způsobit problémy. Hledal jsem, ale nalezl jsem pouze řešení, která požadují jistou inteligenci na straně práce s FTP, což je ale v mém případě nereálné. Konkrétně třeba přejmenování uploadovaného souboru na finální název až po úplném dokončení procesu (temporary file). Zámky flock() nefungují, resp. upload přes FTP negeneruje potřebný příznak (zřejmě), který by uměly zachytit. Nějaký nápad, jak na to? |
||
Majkl578 Profil |
Asi jediné schůdné a bezpečné řešení bude to tebou zmíněné -- soubor nahrávat s dočasným názvem a po nahrání jej přejmenovat.
|
||
Keilew Profil |
#3 · Zasláno: 16. 3. 2013, 00:13:27
Těžko to ale vynucovat při ručním uploadu...
|
||
Davex Profil |
Keilew:
Pokud nemůžeš předem ovlivnit obsah nahrávaného souboru a dát si na konec nějakou nezaměnitelnou značku, tak snad zbývá jen nečíst příliš čerstvé nebo bobtnající soubory. |
||
Alphard Profil |
Právě jsem chtěl navrhnout v nějakých intervalech kontroloval soubory, zapisovat si jejich velikost a když při dalším přístupu bude stejná, zahájit nějaké zpracování, ale Davex mě předběhl během testu. filesize() mi spolehlivě vrací postupně narůstající velikost nahrávaného souboru.
|
||
Keilew Profil |
Díky za ten nápad s filesize(), je to dostatečně dobré řešení.
|
||
suvel Profil |
#7 · Zasláno: 16. 3. 2013, 18:05:14
Nejsem si na 100 % jistý, ale myslím si, že soubor nejde otevřít pro zápis, pokud není celý načtený. Pak by to bylo jednodušší, nebylo by třeba zjišťovat filesize a stačil by tenhle jednoduchý test.
|
||
Keilew Profil |
#8 · Zasláno: 16. 3. 2013, 19:04:59
No povedlo se mi to, proto to řeším.
|
||
Str4wberry Profil |
#9 · Zasláno: 16. 3. 2013, 19:39:06
Co na to jít z jiné strany. Nešlo by nějak zabránit vůbec tomu, aby byl důvod právě nahrávaný soubor používat?
Tedy se soubory na FTP manipulovat ve stylu tohoto? (I když to také není 100%.) Tj. nejprve nahrát a potom přejmenovat nebo nahrát soubory do nové složky a na jednom místě změnit umístění. |
||
Keilew Profil |
#10 · Zasláno: 16. 3. 2013, 21:41:05
To by šlo, kdybych mohl ovlivnit způsob nahrávání na FTP, ale to dělají vedle lidí i jiné neovlivnitelné systémy.
|
||
Časová prodleva: 11 let
|
0