Přímý zápis do serverových souborů. Možná WebDAV? rubrika: Návrh

8 rmaslo
položil/-a 20.9.2016

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í:

  1. Č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é.

  2. Č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.

  3. 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í.

  4. 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...

  5. 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.
odkaz
8 Jakub Macek
odpověděl/-a 21.9.2016

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.

Komentáře

  • rmaslo : Mrknu na ty protokoly. Nevím jakým konkrétním programem se který soubor má editovat, ale mohlo by jít nastavit cmd.exe -c "NázevSouboruZProtokoluSCestou" a pak by to snad mohlo brát dle asociace extenzí ve Win - což je to co bych potřeboval. 21.9.2016

Pro zobrazení všech 2 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.