Ir para conteúdo

POWERED BY:

Arquivado

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

Guilhermefb

[Resolvido] Butão

Recommended Posts

Ola,

 

Estou com um problema.

É o seguinte eu quero chamar esse código dentro de um botão.

$arquivo = "ficha.doc";

header ("Content-type: application/msword"); 
header ("Content-Disposition: attachment; filename=\"{$arquivo}\"" );

echo $html; 

exit; 

 

Mas toda a vez eu chamo a pagina, ele faz o donwload do arquivo automaticamente.

Alguem saberia como resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso acontece por que você está mandando fazer isso

 

Content-Disposition é um cabeçalho q fazer com q a pessoa faça o download de um arquivo mtas vzs utilizado quando você quer q a pessoa faça um download de um arquivo gerado dinamicamente.

 

se você quer incluir o valor desse documento em um textarea por exemplo sugiro q use ajax

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem bastante coisa pra aprender...

 

bom você não precisa de php para fazer isso da forma q eu imagino

 

você irá usar o php para reescrever o arquivo "ficha.doc"

 

num outro evento também útilizando php...

baixe o jQuery

agora vamos fazer a função q vai "popular" seu textarea...

 

<head>                                                                  
<script type="text/javascript" src="jquery.js"></script>          
<script type="text/javascript">                                         
   $(document).ready(function() {
       var xhr;
       xhr = $.ajax({
           url: "ficha.doc"
       });
       //deferred xhr done
       xhr.done(function(data) { 
           $("textarea").innerHTML = data;
       });
       //deferred xhr fail
       xhr.fail(function() { 
           alert('erro na requisição')
       });
   });                                   
</script>
<body>
<textarea></textarea>
</body> 

 

sugiro que pesquise sobre jQuery ou DojoToolkit

 

eu gosto e prefiro o dojo mas ele é um pouco mais complexo no entanto tem muito mais coisa q o jQuery

 

Dojo/jQuery são frameworks JS servem para realizar tarefas na parte do cliente (no browser)

 

PHP é uma linguagem de servidor ela q vai ser responsável por armazenar dados no banco ou realizar upload de imagens ou reescrever arquivos, ou verificar as permissões do usuario do seu sistema e diversas outras funções que um servidor deve desempenhar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz, você quer mesmo editar um arquivo do Word?

Então pode começar a estudar a estrutura do mesmo, que não é nada trivial, pois não contem só texto, mas também formatação...

Porque não utiliza um simples arquivo TXT?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O formato DOCX é relativamente menos complexo pois como é baseado em XML, basta descompactar com a ZLib como se fosse um ZIP e ler um arquivo texto plano dentre os presentes na estrutura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso teria que ser um doc mesmo, pois tem fotos no arquivo , alem do Word "interpretar" a configuração do HTML e ajusta o arquivo.

 

Alguém saberia outro método?

Esse postado não funcionou =/;

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todo tipo de manipulação binária de arquivos com PHP é dificílimo.

 

Você tem de conhecer a estrutura interna do formato do arquivo, lê-lo em modo binário e, na maioria das vezes desempacotar os bytes de acordo em quantidade e sequenciais variáveis.

 

Você dificilmente achará algo pronto que atenda todas as suas necessidades. Eu sugiro que você pense em outra coisa que não use arquivos do Word.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A única forma que conheço de você fazer isso sem depender de o usuário ter algum aplicativo capaz de abrir um arquivo .DOC, seria utilizando algum serviço online, como o Google Docs Viewer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o que ele está querendo é algo menos complexo pelo que entendi ele só quer baixar o arquivo depois de clicar em um botão.

<?php
$pasta = 'pasta_do_arquivo_aqui/' // Caso seja na mesma pasta que o arquivo php $pasta = ''
$download = (isset($_GET['download']))? $_GET['download'] : '';
if($download != ''){
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.$download.'"');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($pasta.$download));
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Expires: 0');
readfile($pasta.$download);
}
?>
<a href="?download=nome_do_arquivo.extensao">Download</a>

Não testei então não sei se está funcionando 100%

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.