Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pobieranie pliku w locie
sannin
post 8.12.2010, 00:25:45
Post #1





Grupa: Zarejestrowani
Postów: 308
Pomógł: 13
Dołączył: 31.10.2008

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


Witam,

chcę wysyłać do użytkownika plik który jest generowany podczas jego pobierania. Już tłumaczę o co chodzi z bazy danych są pobierane informację zazwyczaj około 100mb i wysyłane do użytkownika. Żeby nie generować masy plików chcę to wysyłać w locie próbowałem tak:

Kod
require('varibleStream.php');

stream_wrapper_register("test", "MyStream") or die("Failed to register protocol");
$fp = fopen("test://MyTestVariableInMemory", "r");

header("Pragma: no-cache");
header("Content-Type: application/force-download");
header("Expires: 0");
header("Content-Length: 104857600");
header("Content-Transfer-Encoding: binary");
@header('Content-Disposition: attachment; filename="test.txt"');
fpassthru($fp);
fclose($fp);


ale problem jest taki, że skrypt czeka do wykonania funkcji:

Kod
public function stream_read($count) {
        //....
        while($r = mysql_fetch_array($q)) {
            echo $r[0];
        }
        //...
    }


Nie wiem czy ogólnie dobrze kombinuję. Chodzi mi o to, że to co zostało pobrane częściowo z bazy ma być od razu wysyłane do użytkownika i kasowane z pamięci (podczas pobierania całego pliku). Nie proszę o gotowy skrypt, a jakieś wskazówki czym się zainteresować, żeby zrobić coś takiego.

Go to the top of the page
+Quote Post

Posty w temacie


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.07.2025 - 19:46