Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zapis pliku w przegladarce
maax990
post 21.07.2017, 13:43:00
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 19.07.2017

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
viking
post 21.07.2017, 14:11:08
Post #2





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


https://stackoverflow.com/questions/7263923...wnload-with-php


--------------------
Go to the top of the page
+Quote Post
maax990
post 22.07.2017, 07:52:28
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 19.07.2017

Ostrzeżenie: (0%)
-----


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


Ten post edytował maax990 22.07.2017, 07:52:50
Go to the top of the page
+Quote Post
Pyton_000
post 22.07.2017, 08:29:06
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


  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;
Go to the top of the page
+Quote Post
maax990
post 22.07.2017, 11:01:26
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 19.07.2017

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 00:28