Creo que todos tienen esta experiencia: hay un enlace en la página que señala un archivo de Word en el servidor. Cuando la máquina del cliente tiene instalación de la oficina, hacer clic en el enlace llamará a Word para abrir y navegar; Cuando la máquina del cliente no tiene la oficina instalada, hacer clic en el enlace aparecerá el cuadro de diálogo Guardar. Para resumir, si el navegador conoce el tipo de archivo, se abrirá automáticamente; Si no lo sabe, se le solicitará al cliente que guarde. Pero a veces esperamos que no importa qué tipo de archivo, no lo abriremos y dejaremos que el cliente lo guarde directamente. Para cumplir con este requisito, los archivos guardados en el disco duro del servidor deben implementarse utilizando el método SendBinary del componente ASPUPLOAD. Para los archivos almacenados en la base de datos, solo necesita abrir el conjunto de registros y emitir los datos binarios directamente al cliente. Sin embargo, debe informar el tipo de MIME, el nombre del archivo y el tamaño del archivo del archivo del archivo del navegador.
1. Archivos en el disco duro del lado del servidor
La copia del código es la siguiente:
<%
Dimupload, filepath
SetUpload = server.createObject ("Persits.upload")
Filepath = server.mappath (".") & "/" & "2003529213019.txt"
'SendBinary Parameter Descripción:
'Parámetro 1: ruta física de archivo
'Parámetro 2: si transferir información como el tipo MIME del archivo al navegador
'Parámetro 3: Tipo de archivo, puede especificar el tipo de MIME específico, pero generalmente puede usar la aplicación/Octet-Binary
'Parámetro 4: deje que el cliente guarde el archivo o abra directamente. Verdadero: Guardar; Falso (predeterminado): abrir
Upload.sendbinaryFilepath, verdadero, "aplicación/octet-binary", verdadero
%>
2. Archivos en la base de datos del lado del servidor
La copia del código es la siguiente:
<%
Dimobjconn, objrs
Setobjconn = server.createObject ("ADODB.Connection")
Setobjrs = server.createObject ("ADODB.Recordset")
objconn.open "controlador = {Microsoft AccessDriver (*. Mdb)}; dbq =" & server.mappath ("db1.mdb")
objrs.open "Seleccionar*fromt5whereID = 2", objconn, 1,3
Respuesta.ContentType = "Application/Octet-Stream"
Respuesta.AddHeader "Content-Disposition", "Anexo; FileName =" & OBJRS ("FileName")
Respuesta.AddHeader "Content-longitud", CSTR (objrs ("tamaño")) 'Aquí debe convertir con CSTR
Response.BinaryWriteObJrs ("Archivo")
objrs.clar
Setobjrs = nada
objconn.close
Setobjconn = nada
%>
¡Este método requiere que el nombre del archivo y el tamaño del archivo se guarden al mismo tiempo al guardar el archivo! Si no se especifican el nombre y el tamaño del archivo, si el navegador conoce el tipo de archivo, se abrirá automáticamente; Si no lo sabe, ¡se le solicitará al cliente que ahorre!