ugrás a tartalomhoz

8MB-nál nagyobb fájl beolvasása PHP-ben

Karfi · 2005. Nov. 9. (Sze), 23.54
Hellósztok lenne egy problémám remélem tud valaki segíteni.
Az lenne a gond hogy nem tudok 8 megás fájlnál nagyobbat letölteni mivel, ahogy jelenleg van:
<?php
$disposition = "attachment";   
$mimeType = "application/wmv";    
$nev = $HTTP_GET_VARS["nev"];    
$file = "klip/".$nev;    
header("Content-Type: $mimeType");    
header("Content-Disposition:$disposition; filename=\"".trim(htmlentities($nev))."\"");    
header("Content-Description: ".trim(htmlentities($nev)));    
header("Content-Length: ".(string)(filesize($file)));    
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");    
header("Connection: close");    
readfile($file);
?>
Nem működik mert ennél a formációnál a szervernek be kéne tölteni a fájlt a memóriába, de nekem 8 megánál többet nem lehet betölteni remélem világos.
Az lenne a kérdés hogy megoldható e valahogy hogy le tudjak tölteni nagyobb fájlokat, esetleg a szerver ne töltse be a fájlt vagy valami.
 
1

Memory limit, post max size, stb...

Dualon · 2005. Nov. 10. (Cs), 00.43
Szia!
Kapcsolodó konfigurációs megjegyzés: Lásd még: file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size és a max_input_time direktívákat a php.ini-ben!

Forrás: PHP manual
Ezek _feltöltésre_ vonatkoznak.

Ha "betöltésről" van szó, a memory-limit lesz a barátod.
Szerk.: Ha nem részletekben olvasod be a file-t, ez is hasznodra lehet:
file_get_contents() is the preferred way to read the contents of a file into a string. It will use memory mapping techniques if supported by your OS to enhance performance.


Dúalon
http://e-arc.hu/
2

Readfile

sajt · 2005. Nov. 10. (Cs), 00.45
A readfile-on kivul van meg nehany lehetoseg. Nezz utana a kezikonyvben a file muveleteknel.

--
Ámon Tamás - http://amon.hu
3

fread

Poetro · 2005. Nov. 10. (Cs), 00.47
Hát igen. De ha csak kis részeket olvasol be és írsz ki, akkor nem fog elfogyni a memória.

<?php
if($handle = fopen($file, "r")) { // megnyitjuk a fájlt olvasásra, ha lehet
  while (!feof($handle)) {        // nem vagyunk még a fájl végén?
    echo fread($handle, 8192);    // beolvasunk 8 kbyte adatot, és kiírjuk
  }
  fclose($handle);
}
?> 
--------
Poetro
4

Köszönet

Karfi · 2005. Nov. 10. (Cs), 18.30
Köszi ez a variáci ó működik hogy feldarabolom a fájlt csak terheli a szervert de ez már nem az én problémám egyenlőre kösz a segítséget.
5

Nagyobb

sajt · 2005. Nov. 11. (P), 02.38
Lehet nagyobb darabokban is.

--
Ámon Tamás - http://amon.hu
6

<Nincs cím>

Karfi · 2005. Nov. 11. (P), 18.08
Tudom 3Mb-os részletekben olvasgatom be, de a láccat néha csal mivel igy sem jó.
Hiába tölteném lefele 3Mb nál kirja hogy hiba azt megszakad a letöltés.