Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Content-Length - wysyłanie wielkości pliku, Przestało działać po zmianie serwera.
kzyhu
post 18.10.2009, 21:44:40
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 18.10.2009

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


Witam!

Mój sklep postawiony na oscommerce w nazwa.pl bez problemu wysyłał do przeglądarki informację o wielkości ściąganego pliku.
Gdy przeniosłem sklep na nowy serwer w statnet.pl (managed vps) "content-length" prestało działać. Teraz przy ściąganiu
plików, przeglądarka nie wie jaka jest jego wielkość.

Moje pytanie to, czy na ten parametr może mieć wpływ jakieś ustawienie serwera? Bo skrypt się nie zmienił. Działał na PHP5 i najnowszym
MySQL tak samo jak teraz, na nowym serwerze.

Poniżej wklejam kod skryptu:

  1. header('Content-Length: '.filesize(DIR_FS_DOWNLOAD . $downloads['orders_products_filename']));


gdzie:

  1. define('DIR_FS_CATALOG', '/home/kzyhu/');
  2. define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');


Ściąganie plików działa bez problemu, "DIR_FS_DOWNLOAD" prawidłowo prowadzi do katalogu z plikami.
Pomocy :-)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
marcio
post 19.10.2009, 07:41:40
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


  1.  
  2. header('Content-Length: '.sprintf("%d" ,filesize(DIR_FS_DOWNLOAD . $downloads['orders_products_filename'])));
  3.  


Zobacz tak.



--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
kzyhu
post 19.10.2009, 12:47:47
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 18.10.2009

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


Niestety, dalej to samo. Pliki z zamówień ściągają się, ale FireFox pokazuje "Szacowany czas nieznany".
Go to the top of the page
+Quote Post
marcio
post 19.10.2009, 12:58:26
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Pokaz wszystkie naglowki jakie wysylasz


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
kzyhu
post 5.12.2009, 17:12:44
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 18.10.2009

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


  1. $tmp_tab = explode("/",$downloads['orders_products_filename']);
  2. $nazwa = $tmp_tab[sizeof($tmp_tab)-1];
  3. // Now send the file with header() magic
  4. header("Expires: Mon, 1 Jan 1980 00:00:00 GMT");
  5. header("Last-Modified: " . gmdate("D,d M Y H:i:s") . " GMT");
  6. header("Cache-Control: no-cache, must-revalidate");
  7. header("Pragma: no-cache");
  8. ini_set('zlib.output_compression', 'Off');
  9.  
  10. header("Content-Type: Application/octet-stream");
  11. header('Content-Length: '.filesize(DIR_FS_DOWNLOAD . $downloads['orders_products_filename']));
  12. header("Content-Disposition: attachment; filename=\"$nazwa\"");
  13. header("Content-Transfer-Encoding: binary");


Zlecę odpłatną naprawę tego skryptu w OsCommerce. Problem opisany powyżej. Proszę pisać na GG: 846058. Płatność przelewem lub PayPal.

Witam!
Odświeżam temat i podaję częściowe rozwiązanie:

SERWER nie wysyłał do PRZEGLĄDARKI wielkości pliku, ponieważ Apache ma włączoną kompresję plików PHP.
W pliku .htaccess - wg. zaleceń admina serwera - tę linijkę:

  1. SetEnvIf Request_URI download\.php no-gzip


i zaczęło działać! FireFox, Opera, odczytują wielkość pliku, ale dopiero dzisiaj zauważyłem, że nic
nie zmieniło się w IE8. (Przy ściąganiu pokazuje: pozostały czas nieznany)

Czy ktoś wie dlaczego?

P.S.

A oto nagłówki, które odbieram używając:
FireFox: http://kzyhu.nazwa.pl/ff.html
IE8: http://kzyhu.nazwa.pl/ie8.html

Widać, że serwer odpowiada dla FF nagłówkiem Content-Length, a IE8 nie odbiera już tego nagłówka... :/

NO... zna ktoś rozwiązanie? smile.gif

Ten post edytował kzyhu 3.12.2009, 15:18:32
Go to the top of the page
+Quote Post
zegarek84
post 6.12.2009, 00:39:23
Post #6





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


dla ie8
Cytat
Content-Encoding: gzip

co znaczy, że gdzieś jeszcze czegoś nie wyłączyłeś z dodatkową kompresją winksmiley.jpg - co z kolei jeśli po kompresji (dodam buforującej, i po a nie przed buforem kompresji...) dopiero nie poda się wielkości wymusza:
Cytat
Transfer-Encoding: chunked

ps. da się kompresować treść i wysyłać wielkość pliku - oczywiście w przypadku tego załącznika to nie ma sensu bo już jest skompresowany zip...

nie ma kodu jak wysyłasz pliki to jak mamy pomóc?? - temat już jakiś czas temu widziałem ale nie dołączyłeś nagłówków a pisałeś, że wyłączyłeś kompresję - jak się okazuje gdzieś nie do końca skoro taki nagłówek jest wysyłany do ie....


Ten post edytował zegarek84 6.12.2009, 00:49:38


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

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: 14.08.2025 - 04:57