Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

Problema ao forçar download.

$
0
0

Olá pessoal,

Estou criando uma funcionalidade de segurança em PHP que verifica se o usuário do nosso portal está em sessão. Se ele estiver, verifica se ele tem acesso ao produto que o arquivo é vinculado. Até ai tudo bem! O grande lance é que eu consigo forçar o download de todos os arquivos, menos dos instaladores, que são os itens que necessitam de mais segurança.

Tente e pesquisei de tudo, espero que possam me ajudar, nessa primeira vez no fórum. :)

 

Abaixo segue o código total da função:

function startDownload()
	{
		$pfdir = $_GET['path'];
		$pdir = dirname($pfdir);
		$pfile = basename($pfdir);
		
		$dir = dirname($_SERVER['SCRIPT_FILENAME'])."/";
		$dir .= $pdir."/";
		$file = $dir.$pfile;
		$jfile = basename($file);
			$rs = self::verifyFile($jfile);
			
			if($rs){
				if(self::verProduto($rs['id'])){
					if(is_file($file)){
			
					header('Content-Description: File Transfer');
					header('Content-Disposition: attachment; filename="'.$jfile.'"');
					header('Content-Type: application/octet-stream');
					header('Content-Transfer-Encoding: binary');
					header('Content-Length: ' . filesize($file));
					header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
					header('Pragma: public');
					header('Expires: 0'); 
					ob_clean();
					flush();
					readfile($file);
					exit;
					
					}else{
						// Arquivo não existe na pasta Downloads
						echo "<h3>Erro 10: Não foi possível encontrar o arquivo.</h3>";
					}
				}else{
					// Não existe o curso vinculado ao arquivo no contrato do usuário
					echo "Erro 12: Arquivo não encontrado na sua lista de Downloads.";
				}
			}else{
				// Arquivo não existe no banco de dados
				echo "<h3>Erro 11: Não foi possível encontrar o arquivo.</h3>";
			}
	}

 


Viewing all articles
Browse latest Browse all 14190