Přímý zápis do serverových souborů. Možná WebDAV? rubrika: Návrh
Situace: Intranetový (Linux, Apache, PHP, MySQL) informační systém podniku, založený převážně na db avšak obsahující i soubory různých typů, vážící se k jednotlivým položkám agend. Cca 30 uživatelů, z 99% práce v podniku na LAN.
Příklad: Agenda zákazky, obsahující tisíce zakázek má tabulku zakazky, zakazky_rozpis, atd... a adresář v kterém má každá zakázka svůj podadresář (jmenující se podle id zakázky) a v něm soubory (cdr, doc, xls, jpg, pdf...) s nákresy, postupy prací atd...
Požadavky: Zobrazení souborů patřících k zakázce v intranetovém systému, možnost jejich editace a možnost přidávání systémem drag & drop z mailového klienta.
Současné řešení: Serverový adresář se soubory je nasdílen jako disk (na všech klientech stejný, dejme tomu jako X:) přes Sambu. V intranetovém systému je stránka "zakázka soubory", v které je iframe se src="file:///X:\zakazky\xxxx\" (kde xxxx je číslo zakázky). Uživatelé spokojení, soubory lze do iframe snadno přetahovat, mazat, kopírovat a hlavně otevírat v programech dle jejich extenzí a po jejich případné editaci normálně ukládat příkazem "Save" příslušného programu.
Problém: Takto to funguje jen v IE, které na protokol file:///... používá vnitřní file manager (explorer) win. Nově požadovaný prohlížeč: Firefox.
Zkoumaná řešení:
-
Čistě internetové řešení, se zobrazením a administrací souborů ve webové stránce. Jejich zobrazení a editace přes HTML Download. Nahrávání i drag & drop lze vyřešit buď dle: https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications nebo http://www.html5rocks.com/en/tutorials/file/dndfiles/ . Zásadním problémem je uložení souboru po editaci. Uložení do nějakého dočasného adresáře, hledání souboru a jeho přetahování je příliš komplikované.
-
Čistě internetové řešení, se zobrazením a administrací souborů ve webové stránce. Jejich zobrazení a editace přes ftp. (tj. na jejich otevření by sloužil link s protkolem ftp) Naivní myšlenka, která předpokládala, že win programy si zapamatují, že otevíraly soubor z ftp://jmeno:heslo@zakazky/xxxx/neco.ext a po kliku na Save to tam zase zapíší... Opravdu tomu tak není, ani náhodou.
-
Hybridní řešení s tím, že soubory se zobrazují pomocí PHP a HTML na stránce, ale otevírají se přes souborový systém. Tj. v lincích vedoucích na tyto soubory je něco jako src="file:///X:\zakazky\xxxx\neco.ext" Požadované funkčnosti lze dosáhnout, ovšem do Firefoxu se musí nainstalovat doplněk z https://addons.mozilla.org/cs/firefox/addon/local-filesystem-links/ . No být závislý na nějakém cizím doplňku a ještě navíc se nezbavit nutnosti mapování disků ve mě moc nadšení nebudí.
-
Pro tyto případy (editace souborů) by mělo mít HTML rozšíření WebDAV (https://cs.wikipedia.org/wiki/WebDAV), které by pomocí PUT mělo umět zapisovat soubory. Nějaký modul do Apache existuje (http://httpd.apache.org/docs/current/mod/mod_dav.html) nicméně zdrojů mi obecně moc nepřijde. Zajímalo by mě jestli WebDAV někdo používá, zkušenosti, jaké je podpora klientských programů (hlavně MS Office, Corel Draw, případně AutoCad), atd...
- Samozřejmě, kdyby měl někdo v rukávu nějaké geniální řešení (třeba jak pomocí nějakého switche v about:config donutit Firefox aby na protokol file:// zobrazoval v iframe nějaký file namager, případně nějaká kouzla s vlastními protokoly) tak se určitě bránit nebudu.
Můžu připojit zkušenost k bodu 4, i když trochu jiným směrem. Moje dřívejší pokusy s WebDAV na Windows samotných byly dost mizerné. Ve verzi 10 už se konečně namapování WebDAV serveru na diskové písměno chová slušně, ale na verzích XP a 7 to byl souboj s ne vždy úspěšným výsledkem.
Jinak u samotných programů vím, že aktuální MS Office to podporuje sám, protože Microsoft to využívá v rámci Office 365 a integrace s OneDrive.
K bodu 5 - Firefox lze v konfiguraci přesvědčit, aby pro ručně speficikované protokoly spouštěl konkrétní program. A podobně lze donastavit i Windows přes registry. Mám například protokol editor, takže když se mi vypíše PHP chyba, tak v ní mám odkaz na soubor editor://C:/nekde/projekt/soubor.php?radek=123 a ten se mi kliknutím otevře v editoru (editor to musí pochopitelně podporovat - jako parametr na příkazové řádce, COM komunikaci nebo podobně).
To by byla varianta bodu 3 - nadrátovat tam explorer, akorát ten protokol by se nejmenoval file.
Pro zobrazení všech 2 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře