Encontrei esse problema ao usar ASP para criar uma página da web para uma determinada unidade. O sistema MIS anterior da unidade salvou alguns arquivos do Word na forma de fluxos de bytes no banco de dados. dados do banco de dados retirados e exibidos na página da web. A princípio, naturalmente pensei em criar um arquivo temporário no servidor e, em seguida, adicionar um link para o arquivo temporário na página da web. No entanto, esse método aumentará muito a carga no servidor e como garantir que o arquivo temporário. usado por um cliente específico é garantido no serviço Os arquivos não são substituídos por arquivos usados por outros clientes e como excluir os arquivos após serem transferidos para o usuário Esses problemas são difíceis de resolver na prática. Então, existe uma maneira melhor?
Por esse motivo, verifiquei cuidadosamente o livro de referência ASP e descobri que o objeto Response possui um atributo chamado contenttype, que define o tipo MIME do conteúdo enviado pelo servidor ao cliente. O nome completo do MIME é Multipurpose Internet Mail Extensions, que é uma extensão de correio da Internet multifuncional. Sabemos que na programação web às vezes apontamos um hiperlink para um arquivo Word ou Excel. Quando o usuário clica no link, o navegador chamará automaticamente o método correspondente para abrir o arquivo. A razão pela qual isso é possível é que após a instalação do Office na máquina do usuário, o tipo de recurso MIME correspondente será registrado no navegador. Por exemplo, o tipo MIME de um arquivo Word é Application/msword (o primeiro é um tipo MIME e o último é uma subclasse MIME) e o tipo de recurso MIME de um arquivo Excel é Application/msexcel. Na verdade, todos os recursos que o navegador pode manipular têm tipos de recursos MIME correspondentes. Por exemplo, o tipo MIME de arquivos html é Texto/html e o tipo MIME de arquivos JPG é Imagem/JPG. Na interação com o servidor, o navegador determina que tipo de processamento deve ser realizado com base no tipo MIME dos dados recebidos. Para arquivos como HTML e JPG, o navegador irá abri-los diretamente. , o navegador não pode abri-los sozinho. O arquivo é aberto chamando o método correspondente. Para arquivos que não estão marcados com um tipo MIME, o navegador adivinha seu tipo com base na extensão e no conteúdo do arquivo. Se o navegador não conseguir adivinhar, ele passa como application/octet-stream. Para entender os tipos MIME de vários arquivos, visualize-os em win98 Meu Computador->Exibir->Opções de Pasta->Tipos de Arquivo.
Então tive uma ideia e pensei que no ASP eu poderia primeiro retirar os dados do WORD como um fluxo de bytes, depois marcar seu atributo contenttype como Application/msword e depois enviá-lo ao cliente. será do tipo MIME, chamará automaticamente o Word no computador cliente (claro, a premissa é que o Word esteja instalado no computador cliente, caso contrário, será tratado como um recurso não reconhecido, solicitando ao usuário que o salve em vez de abri-lo) para abra-o. Os resultados do teste são muito bons, o método é simples e rápido, e o navegador usa o modo incorporado (semelhante ao modo OLE) para abri-lo no IE5, e o efeito é ainda melhor. A seguir está o conteúdo do programa.
Suponha que o nome da tabela seja tab_word. Há dois campos na tabela. Um é um número inteiro chamado id, que é usado como identificador exclusivo dos dados do Word. Agora queremos exibir o conteúdo do arquivo Word com ID igual a 1 na página. O programa ASP é o seguinte:
<%
' conn - a conexão com o banco de dados criada
'rs – conjunto de resultados
rs = conn.execute(selecione
worddata de tab_word onde id = 1)
resposta.contenttype = Aplicativo/msword
resposta.writebinary(rs(worddata))
'Tenha cuidado ao enviar os dados do conjunto de resultados diretamente usando writebinary, não use variáveis
'Receba esses dados, caso contrário o sistema reportará um erro
%>
Usando métodos semelhantes, você também pode processar Excel, Bmp e muitos outros tipos de dados.