Ir para conteúdo

POWERED BY:

Arquivado

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

Jefferson NF

abrir arkivos direto no browser

Recommended Posts

alguem sabe como faço pra abrir arkivos direto no browser?

eu tenho esse script em php?

 

$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");

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

mysql_close($db_g);

com isso eu visualizo no proprio IE arkivos txt,jpg mas arkivos pdf ficam em branco e arkivos doc ficamo com o codgio binario e nao o documento em si,lembrando q eu garvo os arkivos direto no meu BD,os codigo binarios

e se eu faço esse script d outro jeito para forçar o download da erro q o arkivo nao existe,nao foi encontrado e tal,a saida acho q eh msotrar direto no browser,o porblema maior eh arkivos pdf,pq arkivos doc se eu forçar o download nao da msg d erro,mas arkivos pdf nao estao abrindo nem no browser nem qnd forço o download

algum erro nesse script?

alguma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu ja tinha colocado o content type,mas qnd eu coloco arkivos txt nao abrem,eles perguntam se ker abrir ou slavar e nao mostram no browser,abre o bloco d notas e da erro

bom eu fiz assim:

 

$extensao=explode(".",$nome);
$indices=count($extensao);
$extensao=$extensao[$indices-1];

header("Content-type: application/$extensao");
header("Content-Disposition: inline;filename=\"$nome\";");
echo $dados;
colokei a extensao pq tem varios tipos d arkivos,sera q fiz errado isso?

e como faço isso pra arkivos q nao abrem direto no browser?

com isso q fiz ae eu consigo ver no proprio browser(esta abrindo outra janela do IE)arkivos dox,jpg e xls,mas arkivos txt dao erros e arkivos pdf ficam em branco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas colocar a extensão para definir o mime type não existe. :huh:

 

Isto é exceção e não a regra, para algumas coisas vale sim, para outras não. :blink:

 

O tipo MIME de um arquivo txt é text/plain, por isso não deu certo você fazer dessa maneira ai.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah tah entendi

vlw

entao eu vou fazer como sendo o pdf a exceção,e se outros forem tbm exceção eu coloco tbm,como fiz pra pdf?

e nesse caso como eu faço pra txt entao?

 

vlw

abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ideal mesmo é você deixar um campo reservado em seu banco de dados, nesta mesma tabela para colocar o tipo mime do arquivo assim que você o grava no banco.

 

Mas se não tiver como e você tiver os arquivos definidos, você pode fazer uma série de condições a partir da extensão do arquivo para definir o tipo, por exemplo:

 

<?php

$arquivo = pathinfo("arquivo.txt");
$extensao = $arquivo['extension'];

switch( $extensao )
{
	case "txt": $mime = "text/plain"; break;
	case "pdf": $mime = "application/pdf"; break;
	case "jpg": $mime = "image/jpg"; break;
}

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

echo $dados;

?>

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

po vlw kra

ja ajudou bastante

vou ver o q faço aki

as ideias fora boas

infelizmente eu nao tenho como salvar o tipo no BD msm nao,pq ja me deram as tabelas criadas,tive q trabalhar em cima dlas

mas vou ver desse jeito q você falou

vlw

vou ver o q faço aki e posto d novo

 

soh + uam duvida kal o mim d xls doc ppt esses outros?

 

como eu colos essas outra extensoes aki?

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

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

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

po vlw msm

eu nem tinha visto aki

eu achei uma lista na net com varios mime types

o meu arkivo ficou assim?

conecta();

$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];

switch( $extensao )
{
	case "txt": $mime = "text/plain"; break;
	case "pdf": $mime = "application/pdf"; break;
	case "doc": $mime = "application/msword";break;
	case "xls": $mime = "application/vnd.ms-excel";break;
	case "ppt": $mime = "application/vnd.ms-powerpoint";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 "mid": $mime = "audio/midi";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 "JPG": $mime = "image/jpeg"; break;
	case "jpeg": $mime = "image/jpeg"; break;
	case "JPEG": $mime = "image/jpeg"; break;
	case "jpe": $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;
}
header("Content-type: $mime");
header("Content-Disposition: inline;filename=\"$nome\";");
echo $dados;
mysql_close($db_g);

agora o problema eh o seguinte:

qnd eu clico em um link q corresponde a um pdf,abre em outra janela normalmetne com o acriabt,mas fica tdo em branco

outro problema q acabei d ver eh o seguinte:eu tenho um menu cheio d itens q nem eu sei o q cada uma faz haahah,nesse menu eu fiz um link chamado documentos,q eh pro kra clicar e ver o q ele pode fazer com os documentos,no meu caso,cadastrar,visualizar e excluir arkivos(documentos),soh q qnd eu clico nesse link documentos (menu) vai pra outra janea tbm

deixa eu explicar melhor,tem um menu nesse menu tem uma item chamdo documentos,qnd você clica nesse item abre do lado(iframe eu acho,ou framset) abre as opções,q sao: exclusao.visualização.inserção

depois q eu fiz issa ae em cima,qnd eu clico em 'documentos',vai pra outra janela,ae na outra janela aparece as opções soh q sem o menu

deu pra entender?

sab explicar pq?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pdf nao esta abrindo

eu clico em arkivos com a extensao pdf,abre outra janela,ae fala q ta fazendo o download,mas nao pergunta se kero salvar ou abrir,e da pagina nao encontrada as vzs,mas na maioria das vzs nao abre nda fik tdo branco,nao aparece o acrobat dentro do IE como d costume

pq sera?

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.