Autor Zpráva
Papinak
Profil
Zdravím,
dělám v PHP jednu aplikaci, u které potřebuju nastavit chmod souboru, který si uživatel bude chtít stáhnout. Bylo by nejlepší, kdyby to šlo nějak on-the-fly, protože se mi moc nechce jenom kvůli chmodu vytvářet kopii souboru.
Předem díky :)
juriad
Profil
Možná jsem nepochopil otázku; zkusím dvě pravděpodobné varianty:
1) Chceš, aby stažený souboru měl určitý mód. Do tohoto nemá server co mluvit, ten posílá jen proud bytů a prohlížeč rozhoduje o tom, jak ten soubor uloží na disk.
2) Soubor je normálně nepřístupný webovému serveru. Ty mu chceš před stažením nastavit mód takový, aby k němu mohl uživatel skrze webový server přistoupit a stáhnout jej. Toto bych nedělal. Prostě soubor dej někam, kam webový server nemá přístup (pomocí .htaccess je zakázaný), a soubor servíruj pomocí PHP funkce readfile.
Papinak
Profil
Mám jeden fyzický soubor, ke kterému může být v DB více názvů i chmodů. Já tento soubor potřebuji stáhnout s takovým chmodem, který mu zrovna přijde z DB.
juriad
Profil
To není možné. Mód se nikde při stahování neposílá. Content-Disposition obsahuje jen jméno, které prohlížeč může a nemusí respektovat.
Jediné řešení by bylo nabídnout ke stažení zazipovaný/zatarovaný soubor, protože archivy uvnitř obsahují informaci o módech.
Papinak
Profil
A je možné vytvořit archiv, do kterého nasypu jeden nebo více souborů (se mnou upravenými chmody), bez toho aniž by se uložil na serveru a nabídnul se uživateli ke stažení?
juriad
Profil
Ne, nejspíš není možné se vyhnout tomu stádiu, kdy je ZIP na disku, už kvůli tomu, že server musí poslat hlavičku Content-Length, a tedy by musel cachovat celý obsah zipu v paměti, což vyjde nastejnou jako když si ho odlije na disk. Po stažení jej můžeš smazat, nebo to nechat na nějakém CRONu.

Omlouvám se, ZIP neukládá sám o sobě oprávnění, ale je to možné, byť nespolehlivé.
Přečti si stackoverflow.com/questions/10735297/maintain-file-and-folder-permissions-inside-archives
Papinak
Profil
Ještě bych se chtěl zeptat co se stane, když změním chmod souboru, pošlu ho uživateli ke stažení a přišel by v průběhu stahování někdo jiný, kdo by si chtěl stejný soubor stáhnout s jiným chmodem. Ovlivní to nějak stahování prvního uživatele (předpokládejme využití funkce chmod())?
Keeehi
Profil
Papinak:
A uživatelé windows co? Windows nemají přístupová práva jako unix systémy.

Ještě bych se chtěl zeptat co se stane, když změním chmod souboru, pošlu ho uživateli ke stažení a přišel by v průběhu stahování někdo jiný, kdo by si chtěl stejný soubor stáhnout s jiným chmodem.
Pokud mu vytvoříš vlastní archiv, tak ho to neovlivní. Pokud ten archiv přepíšeš jiným, může se stát spousta různých věcí závisejíchích na spoustě různých faktorů.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: