ďťż

[php?/html?/javascript?] Jak wymusić zapisywanie pliku?

       

Podstrony


telcocafe

Czy da się w jakiś sposób w którymś z języków PHP HTML, lub JS zrobić coś takiego, że jak ktoś klika na linku pliku z rozszerzeniem np. .htm albo .doc to mu wyskakuje takie okienko do zapisywania jak przy plikach .exe?
Użytkownik phpowiec edytował ten post 27 październik 2006, 15:58



Czy da się w jakiś sposób w którymś z języków PHP HTML, lub JS zrobić coś takiego, że jak ktoś klika na linku pliku z rozszerzeniem np. .htm albo .doc to mu wyskakuje takie okienko do zapisywania jak przy plikach .exe?
Co masz na myśli pisząc "takie okienko do zapisywania jak przy plikach .exe" ?
Uściślij albo daj jakieś screen-shoty.

W php możesz to zrobić np tak
<?php header ('content-type: application/x-octet-stream'); header ('location: wlasciwy_plik.htm'); ?>
I daj link do tego skryptu. Można go zmienić by był bardziej uniwersalny i sprawdzać jaki plik wysłać, ale przedstawiłem ogólnie jak to zrobić.


Co masz na myśli pisząc "takie okienko do zapisywania jak przy plikach .exe" ?
Uściślij albo daj jakieś screen-shoty.


Chodzi mi o okienko dialogowe gdzie można wybrać otwórz, zapisz, anuluj.


W php możesz to zrobić np tak
<?php header ('content-type: application/x-octet-stream'); header ('location: wlasciwy_plik.htm'); ?>
I daj link do tego skryptu. Można go zmienić by był bardziej uniwersalny i sprawdzać jaki plik wysłać, ale przedstawiłem ogólnie jak to zrobić.


Dzięki za podpowiedź zaraz sprawdzę!

//EDIT
NIESTETY NIE DZIAŁA!!! To by było dobre gdybynie to, że to przekierowywuje i tak bezpośrednio do tego pliku czyli wynik mam taki jakbym dał zwykły link...
Użytkownik phpowiec edytował ten post 27 październik 2006, 17:18


Hmmm, to może tak: (sprawdziłem, działa)
<?php header ('content-type: application/x-octet-stream'); include ('plik.htm'); ?>
Nie wiem czy Ci odpowiada ten efekt ale przy okazji maskuje skąd ten plik jest pobierany. Niestety, podejrzewam że przy dużych plikach (po pare/naście mb) serwer może się zbuntować. Ale jeśli chodzi tylko o pliki tekstowe, np html - będzie dobrze.

$filename = 'plik.doc'; $fp = fopen('./files/'.$filename, 'r'); $contents = fread($fp, filesize($filename)); header('Content-Type: application/octet-stream'); header('Content-Lenght: '.filesize($filename).';'); header('Content-Disposition: attachment; filename="'.$filename.'"'); echo $contents;
Powinno być dobrze.
edit>
ale pewien nie jestem bo pisałe to na szybko ;p
Użytkownik orglee edytował ten post 27 październik 2006, 17:44

$filename = 'plik.doc'; $fp = fopen('./files/'.$filename, 'r'); $contents = fread($fp, filesize($filename)); header('Content-Type: application/octet-stream'); header('Content-Lenght: '.filesize($filename).';'); header('Content-Disposition: attachment; filename="'.$filename.'"'); echo $contents;
Powinno być dobrze.
edit>
ale pewien nie jestem bo pisałe to na szybko ;p

Dzięki wielkie! Działa!

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.