Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie PDFów
DNMX
post 4.10.2021, 11:16:12
Post #1





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.09.2021

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


Przeniosłem stronę z VPSa na VPSa i nie działa pobieraie plików .PDF. Odpowiada za to taki kod:
  1. header('Content-Description: File Transfer');.
  2. header('Content-Type: application/octet-stream');.
  3. header('Content-Disposition: attachment; filename="'.$c["filename"].'"');
  4. header('Content-Transfer-Encoding: binary');.
  5. header('Expires: 0');.
  6. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');.
  7. header('Pragma: public');.
  8. header('Content-Length: ' . filesize("/var/www/".$c['hash'].".pdf"));
  9. header("Content-Type: application/pdf");
  10. readfile("/var/www/".$c['hash'].".pdf");

Zamiast prośby o zapisanie pliku pojawia się zawartośc PDFa (textowa) w oknie przeglądarki. Dodatek HTTP Headers Life do Firefoxa informuje mnie o takim nagłówku:
Cytat
Date: Mon, 04 Oct 2021 10:13:42 GMT
Server: Apache
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

Coś robię źle czy trzba było coś zmieniać w konfiguracji Apache2 żeby to działo? Przynzam się bez bicia, że stronę na pierwszym VPSie stawiałem lata temu i już nie pamiętam

Ten post edytował DNMX 4.10.2021, 11:34:02
Go to the top of the page
+Quote Post
nospor
post 4.10.2021, 11:20:18
Post #2





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




eader('Content-Disposition: attachment; filename="'.$c["filename"].'"');

Brak H to literowka czy naprawde tak masz?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
DNMX
post 4.10.2021, 11:34:26
Post #3





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.09.2021

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


Literówka, kopiowałem na forum w dwóch częściach kod i dlatego
Go to the top of the page
+Quote Post
nospor
post 4.10.2021, 11:52:38
Post #4





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




wyglada jakby szlo jeszcze cos przed naglowkami, np BOM.
wlacz wyswietalnie/logowanie wszystkich bledow a potem sprawdz logi


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
DNMX
post 4.10.2021, 12:12:03
Post #5





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.09.2021

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


Jedyne co log mówi
Kod
[Mon Oct 04 13:09:39.019555 2021] [php7:warn] [pid 21476] [client 127.0.0.1:50918] PHP Warning:  Cannot modify header information - headers already sent in /var/www/confirm.php on line 103
[Mon Oct 04 13:09:39.019577 2021] [php7:warn] [pid 21476] [client 127.0.0.1:50918] PHP Warning:  Cannot modify header information - headers already sent in /var/www/confirm.php on line 104
[Mon Oct 04 13:09:39.019594 2021] [php7:warn] [pid 21476] [client 127.0.0.1:50918] PHP Warning:  Cannot modify header information - headers already sent in /var/www/confirm.php on line 105
[Mon Oct 04 13:09:39.019612 2021] [php7:warn] [pid 21476] [client 127.0.0.1:50918] PHP Warning:  Cannot modify header information - headers already sent in /var/www/confirm.php on line 106
[Mon Oct 04 13:09:39.019626 2021] [php7:warn] [pid 21476] [client 127.0.0.1:50918] PHP Warning:  Cannot modify header information - headers already sent in /var/www/confirm.php on line 107
[Mon Oct 04 13:09:39.019713 2021] [php7:warn] [pid 21476] [client 127.0.0.1:50918] PHP Warning:  Cannot modify header information - headers already sent in /var/www/confirm.php on line 108
[Mon Oct 04 13:09:39.019768 2021] [php7:warn] [pid 21476] [client 127.0.0.1:50918] PHP Warning:  Cannot modify header information - headers already sent in /var/www/confirm.php on line 109
[Mon Oct 04 13:09:39.019785 2021] [php7:warn] [pid 21476] [client 127.0.0.1:50918] PHP Warning:  Cannot modify header information - headers already sent in /var/www/confirm.php on line 110

Linie 103-110 to właśnie te, któ©e podałem w poprzednim poście.

Teraz dopiero zauważyłem, że na poprzednim VPSie był nginx a tu jest Apache2. Tylko jaki to ma wpływ?
Go to the top of the page
+Quote Post
nospor
post 4.10.2021, 13:19:15
Post #6





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Blad mowi dokladnie to co napisalem. Slesz wczesniej cos przed naglowkami, prawdopodbnie BOM. Temu ci sie sypie.
Albo wywal ten BOM z plikow, ale ustawi globalne buforowanie. Sugerowalbym jednak zrobic to pierwsze wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
DNMX
post 10.11.2021, 12:27:43
Post #7





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.09.2021

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


Czytałem o tym BOM i widziałem przykłady jak się pozbyć tych znaków UTF na przykładzie najpopularniejszych edytorów (Eclipse, Notepad++) Ja swoją stronkę stworzyłem na Debianie w mcedit. Nie znalazłem przykładu dla tego edytora. Czy mógłby mnie ktoś nakierować?

Siedze nad tym juz jakis czas i nie moge dojsc co to. Plik PDF generuje skrypt genpdf.php. Na początku mam include("functions.inc.php); W functions.inc.php odwołuję się jeszcze do config.php. Gdzie szukać, który plik daje ten BOM lub jakikolwiek inny output?
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: 19.04.2024 - 06:15