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 exibirá a caixa de diálogo Salvar. Para resumir, se o navegador souber o tipo de arquivo, ele abrirá automaticamente; Se não souber, o cliente será solicitado a salvar. Mas às vezes esperamos que, não importa o tipo de arquivo, não o abra e deixe o cliente salvá -lo diretamente. Para atender a esse requisito, os arquivos salvos no disco rígido do servidor devem ser implementados usando o método SendBinary do componente aspupload. Para arquivos armazenados no banco de dados, você só precisa abrir o conjunto de registros e produzir os dados binários diretamente para o cliente. No entanto, você precisa informar o tipo MIME do arquivo do navegador, o nome do arquivo e o tamanho do arquivo.
1. Arquivos no disco rígido do lado do servidor
A cópia do código é a seguinte:
<%
Dimupload, filepath
SetupLoad = server.createObject ("Persits.upload")
Filepath = server.mappath (".") & "
'SendBinary Parâmetro Descrição:
'Parâmetro 1: Caminho físico do arquivo
'Parâmetro 2: se deve transferir informações como o tipo MIME do arquivo para o navegador
'Parâmetro 3: Tipo de arquivo, você pode especificar o tipo MIME específico, mas geralmente pode usar o aplicativo/octeto-binário
'Parâmetro 4: deixe o cliente salvar o arquivo ou abra diretamente. Verdadeiro: salvar; Falso (padrão): aberto
Upload.sendBinaryFilePath, verdadeiro, "Application/Octet-Binário", True
%>
2. Arquivos no banco de dados do lado do servidor
A cópia do código é a seguinte:
<%
Dimobjconn, Objrs
Setobjconn = server.createObject ("adodb.connection")
Setobjrs = server.createObject ("adodb.recordset")
objconn.open "driver = {Microsoft accessdriver (*. mdb)}; dbq =" & server.mappath ("db1.mdb")
objrs.open "select*fromt5whered = 2", objconn, 1,3
Response.ContentType = "Application/Octet-Stream"
Response.AddHeader "Content-Disposition", "Applement; FileName =" & Objrs ("nome do arquivo")
Response.Addheader "Length-tons", CSTR (Objrs ("size")) 'Aqui você deve converter com o CSTR
Response.BinaryWriteObJRS ("arquivo")
objrs.close
Setobjrs = nada
objconn.close
SetoBJConn = 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 conhecer o tipo de arquivo, ele será aberto automaticamente; Se não souber, o cliente será solicitado a salvar!