• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

infopc

Download como rapidshare

3 mensagens neste tópico

Boas

Estou a fazer um sistema de download tipo rapidashare, até agora tenho o seguinte:

Gero link encriptado com o caminho para o ficheiro

tenho uma class que desincripta o link e procura o ficheiro

a questão agora é: como faço para o download se iniciar sem o utilizador ver o link?

a pagina que gere os links é: http://www.exemplo.com/ajax/files/get_file/62//llh599.%5Chaflg4/ge_:fk4gj-9e_:a~9vg.T4:g.p

//previamente carreguei o url completo para $uri
$file = str_replace('http://www.exemplo.com/files/get_file/62/', '', $uri);

url_decrypt($file);

//neste momento eu já sei que o ficheiro é "http://www.exemplo.com/ficheiros/teste.rar"
//quero agora iniciar o download sem reencaminhar para o link em questão

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já encontrei solução, mas obrigado a mesma, esta a esquecer-me da função flush();

deixo aqui a minha solução.

//previamente carreguei o url completo para $uri
$file = str_replace('http://www.exemplo.com/files/get_file/62/', '', $uri);

url_decrypt($file);

//gero array que tem a informação do ficheiro

$inf = get_file_info($file);

	header("Pragma: public");
	header("Expires: 0");
	header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
	header("Cache-Control: public");
	header("Content-Description: File Transfer");
	header("Content-Type: ".$inf['mime']);
	header("Content-Disposition: attachment; filename=\"".$inf['name']."\"");
	header("Content-Transfer-Encoding: binary");
	header("Content-Length: " . $inf['size']);

	$file = @fopen($inf['server_path'],"rb");
	if ($file) {
	  while(!feof($file)) {
	    print(fread($file, 1024*8));
	    flush();
	    if (connection_status()!=0) {
	      @fclose($file);
	      die();
	    }
	  }
	  @fclose($file);
	}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora