| 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 |
|
| |