Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> header - pobieranie plików
mrm
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 18.06.2005
Skąd: inąd

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


witam

chciałbym pobierać pliki za pomocą funkcji header, kod wygląda mniej więcej tak jak poniżej

  1. <?php
  2. header("Content-Type: application/force-download");
  3.  header("Content-Type: application/octet-stream");
  4.  header("Content-Type: application/download");
  5.  header("Content-Disposition: attachment; filename=".basename($sciezka_do_pliku).";");
  6.  header("Accept-Ranges: bytes");
  7.  header("Content-Transfer-Encoding: binary");
  8.  header("Content-Length: ".filesize($sciezka_do_pliku));
  9.  readfile($path);
  10.  exit();
  11. ?>


teoretycznie wszystko działa, praktycznie niezawsze tzn. zauważyłem że część plików większych np 20-200 MB, (przy większych pewnie też byłoby podobnie), nie ściąga się, status pobierania dochodzi do pewnych wartości, zazwyczaj są to te same wartości np 15% i się zatrzymuje...i za bardzo nie mam pomysłu co z tym zrobić..

z góry dzięki za pomoc

Ten post edytował mrm 23.04.2008, 10:57:32
Go to the top of the page
+Quote Post
ayeo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Może przekraczasz MAX_EXECUTE_TIME ? Jednak przyznaje się, że strzelam....

edit: z manuala:
  1. <?php
  2. function DownloadFile($file) { // $file = include path 
  3.  if(file_exists($file)) {
  4.  header('Content-Description: File Transfer');
  5.  header('Content-Type: application/octet-stream');
  6.  header('Content-Disposition: attachment; filename='.basename($file));
  7.  header('Content-Transfer-Encoding: binary');
  8.  header('Expires: 0');
  9.  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  10.  header('Pragma: public');
  11.  header('Content-Length: ' . filesize($file));
  12.  ob_clean();
  13.  flush();
  14.  readfile($file);
  15.  exit;
  16.  }
  17.  
  18.  }
  19. ?>

Jednak chyba to nie najlepszy pomysł na ściąganie 200MB plików.


edit: ściągałem tym na próbę film ok 700MB i działa ok.
Go to the top of the page
+Quote Post
calebos
post
Post #3





Grupa: Zarejestrowani
Postów: 104
Pomógł: 3
Dołączył: 22.02.2008

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


Upewnij sie ze wszystkie ustawienia php.ini masz odpowiednie do zaciagania takich danych.
Jak jestes na linuxie to przynajmniej w moim przypadku dziwnie czasami pokazuje rozmiar plikow utworzonych przez skrypty tzn niby plik co ma miec 80mb ma 15mb a po otwarciu wszystkie dane sa na miejscu.
Go to the top of the page
+Quote Post
mrm
post
Post #4





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 18.06.2005
Skąd: inąd

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


mi też działa póki co (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , problem tylko że poprzednie rozwiązanie też mi działało, natomiast u niektórych nie, (tzn czasami tak, czasami nie)
zobaczymy jak będzie z tym,
---
jednak czasami nie działa

Ten post edytował mrm 24.04.2008, 13:08:04
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.09.2025 - 09:16