Forum Pplware

Versão Completa: Acesso negado
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Olá, queria saber como faço pra negar acesso a um arquivo quando o usuário digitar o caminho completo no navegador, o usuário só terá acesso ao arquivo quando clicar em download em uma página por exemplo.
Boa noite.

Explica melhor.

Cumprimentos.
A forma mais fácil será colocar o ficheiro fora da raíz do site e fazer download utilizando PHP, por exemplo.

Um exemplo do ficheiro PHP será este: http://pplware.sapo.pt/tutoriais/php-e-a...-ficheiro/
Citar:The user will be blocked from entering the following into the Internet Explorer Address Bar:

--- A UNC path: \\<server>\<share>

---Accessing local drives: e.g., C:

--- Accessing local folders: e.g., \temp>

E' isto que queres bloquear??
Assumindo que estamos a falar de Windows, tens duas formas: registo e politicas de grupo.

Ve este site que te diz como fazer.
Basicamente e' desactivar a opcao "executar".
É o seguinte, tenho a pasta downloads e dentro dela tenho o arquivo 1.0.zip, eu queria que quando a pessoa digitasse: http://SITE/donwloads/1.0.zip não desse pra fazer download do arquivo, so desse pra fazer o download se ele vier de uma página determinada dentro do servidor (ex: http://SITE/donwload_1.0.php)
Então a tua solução é exactamente a que indiquei em cima.
(30-09-2011 17:58)Bruno Bernardino Escreveu: [ -> ]Então a tua solução é exactamente a que indiquei em cima.

Usei o seguinte código encontrado na página que você passou:

<?php

$file = "download/1.0.zip";
$attachment_name = "versão_1.0_shaman_cms.zip";

$file_extension = strtolower(substr(strrchr($file,"."),1));
$ext = substr(strrchr($file,"."),1);

switch( $file_extension ) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "odt": $ctype="application/vnd.oasis.opendocument.text";break;
case "doc": $ctype="application/msword"; break;
case "ods": $ctype="application/vnd.oasis.opendocument.spreadsheet";break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "odp": $ctype="application/vnd.oasis.opendocument.presentation";break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "mp3": $ctype="audio/mpeg3";break;
case "wav": $ctype="audio/wav";break;
case "mpeg":
case "mpg": $ctype="video/mpeg";break;
case "avi": $ctype="video/avi";break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: ".$ctype."");
header("Content-Disposition: attachment; filename=\"".$attachment_name."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file));
readfile($file);
exit();

echo '$attachment_name';
?>


OBS: adicionei: echo '$attachment_name'; pra começar o download quando carregar a página e coloquei o arquivo .htaccess dentro da pasta downloads, para negar o acesso aos arquivos se for acessado diretamente, configurado assim:

deny from all
IndexIgnore *

Obrigado.
URL's de Referência