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 ->.
Comando "Salvar destino como" "..."para
baixar documentos, mas afinal não é muito amigável. Este artigo descreve o uso dos métodos FSO e Stream para implementar o download direto de documentos pelo IE.
=65001%>
<%
'O nome do arquivo deve ser inserido
if Request("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
end if
' envia os cabeçalhos para os usuários Navegar
Response.AddHeader "Disposição de conteúdo","anexo; filename="&f.name
Response.AddHeader "Content-Length",intFilelength
Response.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
' envia o arquivo para o navegador
Response.BinaryWrite s.Read
Response.Flush
' arrumar
s.Fechar
Definir s = Nada
Função Final
terminar se
%>