Encontré este problema al usar ASP para crear una página web para una determinada unidad. El sistema MIS anterior de la unidad guardaba algunos archivos de Word en forma de flujos de bytes en la base de datos. Ahora el usuario me pide que use ASP para extraer estos archivos de Word. datos de la base de datos y mostrados en la página web. Al principio, naturalmente pensé en crear un archivo temporal en el servidor y luego agregar un enlace al archivo temporal en la página web. Sin embargo, este método aumentará en gran medida la carga en el servidor y cómo garantizar que el archivo temporal. utilizado por un cliente específico está garantizado en el servicio. Los archivos utilizados por otros clientes no se sobrescriben y cómo eliminar los archivos después de que se transfieren al usuario. Estos problemas son difíciles de resolver en la práctica. Entonces, ¿hay una mejor manera?
Por esta razón, revisé cuidadosamente el libro de referencia de ASP y descubrí que el objeto Respuesta tiene un atributo llamado tipo de contenido, que define el tipo MIME del contenido enviado por el servidor al cliente. El nombre completo de MIME es Extensiones de correo de Internet multipropósito, que es una extensión de correo de Internet multipropósito. Sabemos que en la programación web a veces señalamos un hipervínculo a un archivo de Word o Excel. Cuando el usuario hace clic en el enlace, el navegador llamará automáticamente al método correspondiente para abrir el archivo. La razón por la que esto es posible es que después de instalar Office en la máquina del usuario, el tipo de recurso MIME correspondiente se registrará en el navegador. Por ejemplo, el tipo MIME de un archivo de Word es Aplicación/msword (el primero es un tipo MIME y el segundo es una subclase MIME), y el tipo de recurso MIME de un archivo Excel es Aplicación/msexcel. De hecho, todos los recursos que el navegador puede manejar tienen tipos de recursos MIME correspondientes. Por ejemplo, el tipo MIME de los archivos html es Texto/html y el tipo MIME de los archivos JPG es Imagen/JPG. En la interacción con el servidor, el navegador determina qué tipo de procesamiento se realizará en función del tipo MIME de los datos recibidos. Para archivos como html y JPG, el navegador los abrirá directamente. Para archivos como Word y Excel. , el navegador no puede abrirlos por sí solo. El archivo se abre llamando al método correspondiente. Para los archivos que no están marcados con un tipo MIME, el navegador adivina su tipo en función de su extensión y contenido del archivo. Si el navegador no puede adivinarlo, lo pasa como aplicación/octeto-stream. Para comprender los tipos MIME de varios archivos, véalos en Win98 Mi PC->Ver->Opciones de carpeta->Tipos de archivo.
Entonces tuve una idea y pensé que en ASP, primero podría tomar los datos de WORD como un flujo de bytes, luego marcar su atributo de tipo de contenido como Aplicación/msword y luego enviarlo al cliente. escribirá MIME y llamará automáticamente a Word en la computadora cliente (por supuesto, la premisa es que Word está instalado en la computadora cliente; de lo contrario, será tratado como un recurso no reconocido y le pedirá al usuario que lo guarde en lugar de abrirlo) para ábrelo. Los resultados de la prueba son muy buenos, el método es simple y rápido, y el navegador usa el modo integrado (similar al modo OLE) para abrirlo en IE5, y el efecto es aún mejor. El siguiente es el contenido del programa.
Supongamos que el nombre de la tabla es tab_word. Hay dos campos en la tabla. Uno es un número entero llamado id, que se utiliza como identificador único de los datos de Word. El otro es un tipo Blob llamado worddata, que almacena datos de Word. Ahora queremos mostrar el contenido del archivo de Word con ID igual a 1 en la página. El programa ASP es el siguiente:
< %
' conn - la conexión de base de datos creada
'rs - conjunto de resultados
rs = conn.execute(seleccionar
worddata de tab_word donde id = 1)
respuesta.contenttype = Aplicación/msword
respuesta.writebinary(rs(worddata))
'Tenga cuidado de enviar los datos en el conjunto de resultados directamente usando writebinary, no use variables
'Reciba estos datos, de lo contrario el sistema informará un error
%>
Usando métodos similares, también puedes procesar Excel, Bmp y muchos otros tipos de datos.