Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapis pliku w przegladarce
Forum PHP.pl > Forum > Przedszkole
maax990
Witam, w jaki sposób można zapisać plik który mam na odpalonym serwerze xampp w katalogu ./mod/?plik na serwerze tworze tak:
  1. $new_file = fopen('./mod/mod_'.$date, 'w');
  2. fwrite($new_file, $string_to_hex);

Zapis pliku odbywa sie po dacie,teraz chciałbym jakoś zapisać ten plik poprzez przeglądarkę,czy istnieje taka możliwość(jest to plik binarny) i ktoś mi wyjaśni jak to zrobićquestionmark.gif?.
dziękuję za wszelką pomoc.
pozd.
Marek
maax990
mam w miarę działający skrypt,działa robi to co chcę poza dwoma sprawami:
pierwsze to to że zapisuje plik poprawnie tylko pod warunkiem jak mam zamkniętą linijkę z echo,jeśli ja otworze to się zapis rozlatuje i wszystko co jest w echo leci też do pliku.Dlaczego się tak dzieje i jak można to naprawićquestionmark.gifquestionmark.gif
druga sprawa to zapis,czy można dorobić jakiś link do downloadu typu "Pobierz" lub Button "Pobierz" ?bo musze mieć do wyboru dwie możliwości obrobienia pliku.
oto kod:
  1. <?php
  2. $data = date('His_dmY');
  3. $odczyt = '8273_2';
  4. $odczytany_plik_do_pamieci = file_get_contents($odczyt);
  5. $hex_do_string = bin2hex($odczytany_plik_do_pamieci) ;
  6. $kod_z_pliku = '3132b83c';
  7. $kod_zmiany = '30303030';
  8. $podmiana_string = str_replace($kod_z_pliku,$kod_zmiany,$hex_do_string);
  9. $string_do_hex = pack("H*" , $podmiana_string);
  10. //echo strtoupper($podmiana_string);
  11. $nowy_plik_po_modyfikacji = fopen('8273_2_mod', 'w');
  12. fwrite($nowy_plik_po_modyfikacji, $string_do_hex);
  13. $file = '8273_2_mod';
  14. $maxRead = 1 * 1024 * 1024; // 1MB
  15. $fileName = 'mod_';
  16. $fh = fopen($file, 'r');
  17. header('Content-Type: application/octet-stream');
  18. header('Content-Disposition: attachment; filename="' . $fileName .$data. '"');
  19. while (!feof($fh)) {
  20. echo fread($fh, $maxRead);
  21. }
  22. ?>
Pyton_000
  1. <?php
  2.  
  3. $originalFile = bin2hex(file_get_contents('8273_2'));
  4.  
  5. $originalAfterReplace = str_replace('3132b83c', '30303030', $originalFile);
  6.  
  7. $originalAfterPack = pack("H*", $originalAfterReplace);
  8. file_put_contents('8273_2_mod', $originalAfterPack);
  9.  
  10. $fileName = 'mod_';
  11.  
  12. $data = date('His_dmY');
  13. header('Content-Type: application/octet-stream');
  14. header('Content-Disposition: attachment; filename="' . $fileName . $data . '"');
  15.  
  16. echo $originalAfterPack;
maax990
Dzięki za zainteresowanie,twój plik poprawnie zapisuje ale samo echo nie leci na stronkę,zresztą w twoim przykładzie potrzebuję wyświetlić zmienna $originalFile,a jeśli ja dodam do echo to plik który się zapisuje nie jest juz plikiem z serwera
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.