Você já ficou frustrado ao acessar um site e há documentos, imagens e outros conteúdos disponíveis para download e deseja fazer exatamente isso, faça o download! Em vez disso, quando você clica em um item de conteúdo, ele é aberto no seu navegador. Fui contra esse problema durante um projeto para uma empresa médica e eles precisavam que seus arquivos PDF fossem baixados e não abertos. Bem, existe uma maneira de fazê-lo abrir a caixa de diálogo Salvar como.

Neste tutorial, assumiremos que os arquivos são armazenados localmente no servidor e não em um banco de dados. (Essa é uma discussão totalmente diferente)

Primeiro, você precisa saber a localização dos seus arquivos. Então, vamos supor que seus arquivos estejam localizados em //seu servidor / arquivos / nome do arquivo.ext. Vamos assumir que o Server.MapPath é "/ files".

Portanto, neste momento, vamos criar o arquivo ASP que controlará o download do arquivo. Comece criando um novo documento em branco usando o Bloco de Notas ou seu editor HTML favorito. Coloque o seguinte código ASP:

<%
'=======================
'Define the names of your functions
'=======================
Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
'=======================
'Get the actual file name from the URL that is passed to the browser
'=======================
FileName = request.querystring("filename") 'Get the name from the URL
'=======================
'GIVE AN ERROR MESSAGE IF THE URL IS EMPTY
'=======================
if FileName = "" Then
response.write "Filename Not specified."
response.end
end if
'=======================
'prevent access to certain files
'=======================
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
select case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
response.write "You cannot access these file types."
response.end
end select
'=======================
'Start the download process if all is good
'=======================
response.clear
response.contentType = "application/octet-stream"
response.addheader "content-disposition", "attachment; filename=" & FileName
set stream = server.CreateObject("ADODB.Stream")
stream.type = adTypeBinary
stream.open
stream.LoadFromFile Server.MapPath("/files") & FileName
while not stream.EOS
response.BinaryWrite Stream.Read(1024 * 64)
wend
stream.Close
Set stream = Nothing
response.Flush
response.End
%>


É isso aí. Agora, salve e faça o upload deste arquivo para o servidor e nomeie-o como archiveownloader.asp

Agora, digamos que o nome do arquivo no seu servidor seja familytree.pdf

Em seguida, basta passar o seguinte URL no seu navegador e a caixa de diálogo Salvar como aberto de arquivo será exibida.

//yourserver.com/filedownloader.asp?filename=familytree.pdf

É isso! Você deve ver o seguinte:



Boa sorte e você pode melhorar isso usando bancos de dados e outras funções interessantes para garantir que os arquivos que você deseja que seus usuários acessem tenham a capacidade de serem baixados e não abertos no navegador atual, permitindo que eles "permaneçam" em seu site .

Instruções De Vídeo: Resolver erro: Este arquivo não tem um programa associado a ele para realizar esta ação (Pode 2024).