Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: header - pobieranie plików
Forum PHP.pl > Forum > PHP
mrm
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
ayeo
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.
calebos
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.
mrm
mi też działa póki co 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
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.