Hep! Olisko kellään yksinkertaista komentojonoa miten esim. abc.hot -nimisen tiedoston sisältö voidaan lukea vaikka "file_get_contents" -käskyllä (tai jotenkin muuten) ja vaihtaa sen nimi "lennosta" muotoon def.zip ja sen jälkeen antaa downloadina käskyllä:
readfile("$filename");
exit();
jolloin lataaja näkisi lataavansa def.zip -tiedoston eikä saisi tietää että sen serverillä oleva nimi onkin muutettu abc.hot -nimiseksi.
Tämä siksi, että voisi jakaa tiettyä tiedostoa vain hallitusti, esim sähköpostiosoitteen perusteella ja estää hallitsematon joukkolataus???
Terv JimLazy eli JussiLaiska
Ainakin niin varmasti homma onnistuu, että kopioit tiedoston uudelle nimelle, suoritat haluamasi toimenpiteet (readfilet ja muut) ja kunhan sitten jossain välissä muistat poistaa tuon temppitiedoston, ei tule kovalevykään täyteen :) Toki poistaminen tulee tehdä vasta sitten, kun olet varma ettei tiedoston lataus ole enää kesken. Voihan tuo olla, että nimen "muuttaminen" onnistuu myös otsaketietoja (Content-Disposition, filename) muuttamalla, mutta tuo on ihan arvailua.
<?php // We'll be outputting a ZIP header('Content-type: application/zip'); // It will be called def.zip header('Content-Disposition: attachment; filename="def.zip"'); // The ZIP source is in abc.hot readfile('abc.hot'); ?>
(Lähes suora kopio sivulta https://www.php.net/header )
Suurkiitokset Grez! Ja Olga myös.
Kääntelin tuota samaa asiaa, mutta tottakai just väärinpäin.
Grez'in ohjeessa on se hyvä puoli, ettei tarvi miettiä noita temppien poistoja.
Toimii niinkun junan vessa (ennen Intercityä)
Hyvät jatkot molemmille!
Aihe on jo aika vanha, joten et voi enää vastata siihen.