Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jefferson NF

problemas ao visualizar rar e zip

Recommended Posts

bom dia pessoal

estou com um probleminha aqui

eu cadastro arquivos direto no meu BD,faço um while e cadastro o codigo binario de cada um,soh q qnd vou cadastrar arquivos zip ou rar as vzs nao cadastra,e qnd vou visualizar eu soh consigo visualizar se eu salvar e deois abrir,nao consigo abrir direto,vcs tem alguma ideia?sera q por vir do BD nao tem como msm eu soh visualizar tenho msm q salvar?caso seja isso tem como desabilitar o botao de abrir da caixa d downloads q aparece pro usuario?

desde ja agradeço

vou postar meus codigos

 

para cadastrar:

$vcontrato = $_POST["contrato"];
$vdescricao = $_POST["descricao"];
$vnomedoc = $_FILES['doc']['name'];

$vnome=$_FILES["doc"]["tmp_name"];
$vopen=fopen($vnome,"r");//r = somente leitura
$vtamanho= filesize($vnome);
$vdados="";

while(!feof($vopen)){
	$vdados.=fread($vopen,$vtamanho);
};
$vdados=addslashes($vdados);

if ($vtamanho>=16777216)
{
	echo "Arquivo com mais de 16MB - Não cadastrado";
	echo "Clique <a href='index.php'>aqui</a> para retornar ...";
}

else
{
	conecta();

	$sql2 = "INSERT INTO documentosdados (dados) VALUES ('$vdados')";
	$ret2 = mysql_query($sql2,$db_g);

	if ($ret2)
	{

	  $sql = "INSERT INTO documentos (contrato,nome,descricao,datacad) VALUES ('$vcontrato','$vnomedoc','$vdescricao',current_timestamp())";
	  $ret = mysql_query($sql,$db_g);

	  if ($ret)
	   {
		 echo "Arquivo cadastrado !!!<br>";
		 echo '<a href="visualizar1.php?contrato='.$vcontrato.'"><br />Visualizar</a><br />';
	   }
	}

	else
	{
	   echo "Arquivo não cadastrado !!!<br>";
	}
}

para visualizar:

$sql = "SELECT dados FROM documentosdados WHERE id=". $_REQUEST["id"];

$ret = mysql_query($sql,$db_g) or exit("Erro SQL 1!");

 

$sql2 = "SELECT id,nome FROM documentos WHERE id=". $_REQUEST["id"];

$ret2 = mysql_query($sql2,$db_g) or exit("Erro SQL 2!");

 

$dados = mysql_result($ret,0,"dados");

$nome = mysql_result($ret2,0,"nome");

 

$extensao=explode(".",$nome);

$indices=count($extensao);

$extensao=$extensao[$indices-1];

$extensao = strtr(strtolower($extensao),"ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÞß","àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ");

 

switch( $extensao )

{

case "txt": $mime = "text/plain"; break;

case "pdf": $mime = "application/pdf"; break;

case "doc": $mime = "application/msword";break;

case "dot": $mime = "application/msword";break;

case "xlw": $mime = "application/vnd.ms-excel";break;

case "xlt": $mime = "application/vnd.ms-excel";break;

case "xls": $mime = "application/vnd.ms-excel";break;

case "xlm": $mime = "application/vnd.ms-excel";break;

case "xlc": $mime = "application/vnd.ms-excel";break;

case "xla": $mime = "application/vnd.ms-excel";break;

case "xml": $mime = "application/vnd.ms-excel";break;

case "ppt": $mime = "application/vnd.ms-powerpoint";break;

case "pps": $mime = "application/vnd.ms-powerpoint";break;

case "pot": $mime = "application/vnd.ms-powerpoint";break;

case "mdb": $mime = "application/x-msaccess";break;

case "exe": $mime = "application/octet-stream";break;

case "bin": $mime = "application/octet-stream";break;

case "dll": $mime = "application/octet-stream";break;

case "zip": $mime = "application/zip";break;

case "rar": $mime = "application/rar";break;

case "mid": $mime = "audio/midi";break;

case "mpeg": $mime = "video/mpeg";break;

case "mpg": $mime = "video/mpeg";break;

case "mp3": $mime = "audio/mpeg";break;

case "mp2": $mime = "audio/mpeg";break;

case "mpga": $mime = "audio/mpeg";break;

case "aifc": $mime = "audio/x-aiff";break;

case "aif": $mime = "audio/x-aiff";break;

case "jpg": $mime = "image/jpeg";break;

case "jpeg": $mime = "image/jpeg";break;

case "jpe": $mime = "image/jpeg";break;

case "bmp": $mime = "image/bmp";break;

case "gif": $mime = "image/gif";break;

case "ief": $mime = "image/ief";break;

case "png": $mime = "image/png";break;

case "tif": $mime = "image/tiff";break;

case "tiff": $mime = "image/tiff";break;

case "css": $mime = "text/css";break;

case "htm": $mime = "text/html";break;

case "html": $mime = "text/html";break;

case "mpe": $mime = "video/mpeg";break;

case "mpeg": $mime = "video/mpeg";break;

case "mpg": $mime = "video/mpeg";break;

case "hta": $mime = "application/hta";break;

case "bin": $mime = "application/octet-stream";break;

case "dms": $mime = "application/octet-stream";break;

case "lha": $mime = "application/octet-stream";break;

case "lzh": $mime = "application/octet-stream";break;

case "rtf": $mime = "application/rtf";break;

case "hlp": $mime = "application/winhlp";break;

case "gz": $mime = "application/x-gzip";break;

case "class": $mime = "application/x-java-class";break;

case "js": $mime = "application/x-javascript";break;

case "asx": $mime = "application/x-mplayer2";break;

case "tar": $mime = "application/x-tar";break;

case "au": $mime = "audio/basic";break;

case "snd": $mime = "audio/basic";break;

case "rmi": $mime = "audio/mid";break;

case "m3u": $mime = "audio/x-mpegurl";break;

case "ra": $mime = "audio/x-pn-realaudio";break;

case "ram": $mime = "audio/x-pn-realaudio";break;

case "wav": $mime = "audio/x-wav";break;

case "ico": $mime = "image/x-icon";break;

case "asp": $mime = "text/asp";break;

case "stm": $mime = "text/html";break;

case "bas": $mime = "text/plain";break;

case "c": $mime = "text/plain";break;

case "rtx": $mime = "text/richtext";break;

case "htc": $mime = "text/x-component";break;

case "xml": $mime = "text/xml";break;

case "mp2": $mime = "video/mpeg";break;

case "mpa": $mime = "video/mpeg";break;

case "mpe": $mime = "video/mpeg";break;

case "mpv2": $mime = "video/mpeg";break;

case "mov": $mime = "video/quicktime";break;

case "qt": $mime = "video/quicktime";break;

case "lsf": $mime = "video/x-la-asf";break;

case "lsx": $mime = "video/x-la-asf";break;

case "asf": $mime = "video/x-ms-asf";break;

case "asr": $mime = "video/x-ms-asf";break;

case "asx": $mime = "video/x-ms-asf";break;

case "avi": $mime = "video/x-msvideo";break;

case "movie": $mime = "video/x-sgi-movie";break;

case "flr": $mime = "x-world/x-vrml";break;

case "vrml": $mime = "x-world/x-vrml";break;

case "wrl": $mime = "x-world/x-vrml";break;

case "xaf": $mime = "x-world/x-vrml";break;

case "xaf": $mime = "x-world/x-vrml";break;

case "xof": $mime = "x-world/x-vrml";break;

}

 

header("Content-type: $mime");

header("Content-Disposition: inline;filename=\"$nome\";");

 

echo $dados;

mysql_close($db_g);

---------------------------------------

 

uma coisa q eskeci de mencionar

eu consigo cadastrar qlq tipo de arkivo praticamente,mas se passar d 1MB, por exemplo,da erro,nao cadastra e o maximo no MySQL eh d 16MB,ja mudei o tamanho maximo tbm no php.ini e nao mudou nada,acho q o problema esta no while q le todo o arkivo,alguem poderia ver pra mim,alguma outra sugestao sem ser o while,exite alguma função em php q faz o q to fazendo no while?

abraços

e desde ja agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.