Acredito que todo mundo tem essa experiência: há um link na página apontando para um arquivo do Word no servidor. Quando a máquina cliente tiver o Office instalado, clicar no link chamará o Word para abrir e navegar quando a máquina cliente não tiver o Office; instalado, clicar no link aparecerá uma caixa de diálogo Salvar. Resumindo, se o navegador reconhecer o tipo de arquivo, ele o abrirá automaticamente; caso contrário, solicitará que o cliente o salve. Mas às vezes esperamos que, independentemente do tipo de arquivo, não queiramos abri-lo e deixar o cliente salvá-lo diretamente. Para atender a esse requisito, para arquivos salvos no disco rígido do servidor, o método SendBinary do componente ASPUpload deve ser utilizado. Para arquivos salvos no banco de dados, basta abrir o conjunto de registros e enviar os dados binários diretamente para o cliente. . , mas você precisa informar ao navegador o tipo MIME, o nome do arquivo e o tamanho do arquivo.
1. Arquivos no disco rígido do servidor
<%
Dim Upload, FilePath
Definir Upload = Server.CreateObject(Persits.Upload)
FilePath = Server.MapPath(.) & / & 2003529213019.txt
'Descrição do parâmetro SendBinary:
'Parâmetro 1: Caminho físico do arquivo
'Parâmetro 2: Se deseja enviar o tipo MIME e outras informações do arquivo para o navegador
'Parâmetro três: tipo de arquivo, você pode especificar um tipo MIME específico, mas geralmente você pode usar application/octet-binary
'Parâmetro 4: Deixe o cliente salvar o arquivo ou abri-lo diretamente. Verdadeiro: salvar; Falso (padrão): abrir
Upload.SendBinary FilePath,True,aplicativo/octeto-binário,True
%>
2. Arquivos no banco de dados do lado do servidor
<%
Dim objConn,objRs
Definir objConn = Server.CreateObject(ADODB.Connection)
Definir objRs = Server.CreateObject(ADODB.RecordSet)
objConn.open Driver={Driver Microsoft Access (*.mdb)};dbq= & Server.MapPath(db1.mdb)
objRs.open selecione * de t5 onde id=2,objConn,1,3
Response.ContentType = aplicativo/fluxo de octetos
Response.AddHeader Content-Disposition,attachment;nome do arquivo= & objRs(nome do arquivo)
Response.AddHeader Content-Length,CStr(objRs(size)) 'A conversão CStr deve ser usada aqui
Response.BinaryWrite objRs (arquivo)
objRs.fechar
Defina objRs = nada
objConn.fechar
Definir objConn = nada
%>
Este método requer que o nome e o tamanho do arquivo sejam salvos ao mesmo tempo ao salvar o arquivo! Se o nome e o tamanho do arquivo não forem especificados, se o navegador reconhecer o tipo de arquivo, ele o abrirá automaticamente; caso contrário, o cliente será solicitado a salvá-lo!