Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Download script
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Subiectul anterior :: Subiectul următor  
Autor Mesaj
kelye



Data înscrierii: 20/Ian/2006
Mesaje: 231
Locație: Bucuresti

Trimis: Lun Feb 20, 2006 12:52 pm    Titlul subiectului: Download script  

stiu ca s-a mai discutat dar un caz mai general nu ar strica..
iata ce am incropit eu .. si acest script merge ok pt orice marime de fisier.. i-ar mai fi util un download resume si un limiter de banda ..zic eu :)

descriere :
acest cod este continut de files.php care se apeleaza de unde aveti voi ceva de downloadat cu un link de genul files.php?file=fisier.ext

in config.php am setat session_start si evident functia is_logged() (pentru a limita accesul la fisiere..
se defineste si $path care va fi calea catre directorul unde tineti fisierele de download

an style="color: #000000"><?php require_once('config.php'); //Get the requested file $file = $_GET['file']; if ( !is_logged() || (  !$file ) || ( !file_exists( $path . $file ) ) )     {     die ('File not available');     } if ( !function_exists('mime_content_type') )      {     function mime_content_type($f)          {         $f = escapeshellarg($f);         return trim( `file -bi $f` );         }     } //What type of file is this. $filetype= mime_content_type($path.$file); $size = filesize ($path . $file); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public", false); header("Content-Description: File Transfer"); //Set the content type header('Content-type: '.$filetype); header("Content-Transfer-Encoding: binary"); header("Content-Length: ". $size); header("Content-Disposition: attachment; filename=\"$file\""); //Read the file into the browser. $fd = fopen($path . $file, "r"); while(!feof($fd))      {     echo fread($fd, 4096);     ob_flush();     } [/php]
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4553
Locație: la birou

Trimis: Lun Feb 20, 2006 1:39 pm    Titlul subiectului:  

ce e cu asta ? :P
Sus  
kelye



Data înscrierii: 20/Ian/2006
Mesaje: 231
Locație: Bucuresti

Trimis: Lun Feb 20, 2006 1:51 pm    Titlul subiectului:  

ma gandeam ca e bun de exemplu pentru un script de download basic..

si ar putea fi si intrebare.. .. cum fac o limitare de banda? un resume ?
pro/contra scripturi de genul ?
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4553
Locație: la birou

Trimis: Lun Feb 20, 2006 2:08 pm    Titlul subiectului:  

limitarea , cat si downloadu sunt procese server side

nu am nici cea mai vaga idee ...

anyway , ce vroiai tu sa zici aici era "noah , daca aveti nevoie de un script de download , folositi-l pe asta"
Sus  
aurelian



Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti

Trimis: Lun Feb 20, 2006 2:11 pm    Titlul subiectului:  

cu scriptul ala ai nevoie de access la functiile system din php (foarte des acestea sunt disabled din motive de securitate), aici:
Cod:
return trim( `file -bi $f` );


limitare sau resume, o va face clientul cu programe gen net limiter sau download accelerator.
Sus  
kelye



Data înscrierii: 20/Ian/2006
Mesaje: 231
Locație: Bucuresti

Trimis: Mar Feb 21, 2006 1:16 pm    Titlul subiectului:  

pentru resume am vazut ceva .. suna interesant trebe testat ..prezint after
aurelian : ai dreptate cu aia..cred ca o sa o inlocuiesc cu lista de mime_type
- limitare s-ar putea sa ai nevoie sa faci si tu ca server ..cand ai 100 de useri care downloadeaza de o data.. poate nu vrei sa iti lesine banda toti de o data..
Sus  
Troto



Data înscrierii: 29/Iun/2004
Mesaje: 249
Locație: Brasov

Trimis: Mar Feb 21, 2006 11:31 pm    Titlul subiectului: Re: Download script  

Nu era mai simplu

kelye a scris:
an style="color: #000000"><?php require_once('config.php'); //Get the requested file $file = $_GET['file']; if ( !is_logged() || ( !file_exists( $path . $file ) ) ) {    die ('File not available'); } session_cache_limiter(); header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=".basename($path . $file)); header("Content-Transfer-Encoding: binary"); header("Accept-Ranges: bytes"); header("Content-Length: " . filesize($path . $file)); @readfile($path . $file); die(); 
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community