Creo que todos tienen esta experiencia: hay un enlace en la página que apunta a un archivo de Word en el servidor. Cuando la máquina cliente tiene Office instalado, al hacer clic en el enlace se llamará a Word para abrirlo y explorarlo; instalado, al hacer clic en el enlace aparecerá el cuadro de diálogo Guardar. En resumen, si el navegador reconoce el tipo de archivo, lo abrirá automáticamente; si no lo hace, le pedirá al cliente que lo guarde; Pero a veces esperamos que no importa qué tipo de archivo, no queramos abrirlo y dejar que el cliente lo guarde directamente. Para cumplir con este requisito, para los archivos guardados en el disco duro del servidor, se debe utilizar el método SendBinary del componente ASPUpload. Para los archivos guardados en la base de datos, solo necesita abrir el conjunto de registros y luego enviar los datos binarios directamente al cliente. , pero debe indicarle al navegador el tipo MIME, el nombre del archivo y el tamaño del archivo.
1. Archivos en el disco duro del servidor
<%
Carga tenue, ruta de archivo
Establecer carga = Server.CreateObject (Persits.Upload)
FilePath = Servidor.MapPath(.) & / & 2003529213019.txt
'Descripción del parámetro EnviarBinary:
'Parámetro 1: Ruta física del archivo
'Parámetro 2: si se debe enviar el tipo MIME y otra información del archivo al navegador
'Parámetro tres: tipo de archivo, puede especificar un tipo MIME específico, pero generalmente puede usar application/octet-binary
'Parámetro 4: Deje que el cliente guarde el archivo o ábralo directamente. Verdadero: guardar; Falso (predeterminado): abrir
Upload.SendBinary FilePath, Verdadero, aplicación/octeto-binario, Verdadero
%>
2. Archivos en la base de datos del lado del servidor.
<%
Dim objConn,objRs
Establecer objConn = Server.CreateObject(ADODB.Connection)
Establecer objRs = Server.CreateObject(ADODB.RecordSet)
objConn.open Driver={Controlador de Microsoft Access (*.mdb)};dbq= & Server.MapPath(db1.mdb)
objRs.open seleccione * de t5 donde id=2,objConn,1,3
Response.ContentType = aplicación/flujo de octeto
Response.AddHeader Contenido-Disposición, archivo adjunto; nombre de archivo = & objRs (nombre de archivo)
Response.AddHeader Content-Length,CStr(objRs(size)) 'Aquí se debe utilizar la conversión CStr
Response.BinaryWrite objRs(archivo)
objRs.cerrar
Establecer objRs = nada
objConn.cerrar
Establecer objConn = nada
%>
¡Este método requiere que el nombre 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 reconoce el tipo de archivo, lo abrirá automáticamente; si no lo hace, se le pedirá al cliente que lo guarde;