Ao vincular documentos no IE, se encontrar um documento suportado por OLE, o IE chamará automaticamente o programa correspondente para abri-lo. Às vezes, esta função não é o que precisamos, embora possamos lembrar o usuário de clicar com o botão direito do mouse ->. save target as .... comando para baixar documentos, mas isso não é muito amigável, afinal. Este artigo descreve o uso dos métodos FSO e Stream para implementar o download direto de documentos pelo IE. <%@ idioma=página de código vbscript=65001%>
<%
'O nome do arquivo deve ser inserido
se Solicitação(Nome do arquivo)=então
response.write <h1>Erro:</h1>O nome do arquivo está vazio!<p>
outro
chame downloadFile(replace(replace(Request(Nome do arquivo),/,),/,))
Função downloadFile(strFile)
'certifique-se de estar usando a versão mais recente do MDAC para que isso funcione
'obtém o caminho completo do arquivo especificado
strNomeArquivo=servidor.MapPath(strArquivo)
'limpa o buffer
Resposta.Buffer = Verdadeiro
Resposta.Limpar
'cria fluxo
Definir s = Server.CreateObject(ADODB.Stream)
s.Abrir
'Definido como binário
s.Tipo = 1
'carrega no arquivo
em caso de erro, retome a seguir
'verifica se o arquivo existe
Definir fso = Server.CreateObject(Scripting.FileSystemObject)
se não for fso.FileExists(strFilename) então
Response.Write(<h1>Erro:</h1>&strFilename& não existe!<p>)
Resposta.Fim
terminar se
'obtém o comprimento do arquivo
Definir f = fso.GetFile(strFilename)
intFilelength = f.size
s.LoadFromFile(strNomedoArquivo)
se errar então
Response.Write(<h1>Erro: </h1>Erro desconhecido!<p>)
Resposta.Fim
terminar se
'envia os cabeçalhos para os usuários Navegar
Response.AddHeader Content-Disposition,attachment;
Response.AddHeader Content-Length,intFilelength
Resposta.CharSet = UTF-8
Response.ContentType = aplicativo/fluxo de octetos
'envia o arquivo para o navegador
Response.BinaryWrite s.Read
Resposta.Flush
'arrumar
s.Fechar
Definir s = Nada
Função final
terminar se
%>