Alguns arquivos colocados para download são um suplício, pricipalmente aqueles que abrem diretamente no navegador com outros programas monstros por trás, exemplo: PDF e DOC.
Mas o que fazer? Deixar o arquivo compactado para download? Isso não é solução, é quebra galho.
Que tal um script em ASP que força o download de todos os arquivos?
É esse ai:
download.asp?arquivo=nomedoarquivo
<% arquivo = request("arquivo") Response.Buffer=true On Error Resume Next Dim tfm_downloadStream Set tfm_downloadStream = Server.CreateObject("ADODB.Stream") tfm_downloadStream.Type = 1 tfm_downloadStream.Open tfm_downloadStream.LoadFromFile Server.Mappath(arquivo) If Err.number = 0 Then Response.Clear Response.ContentType = "application/octet-stream" Response.AddHeader "Content-Disposition", "attachment; filename="+arquivo Response.AddHeader "Content-Transfer-Encoding","binary" Response.BinaryWrite tfm_downloadStream.Read tfm_downloadStream.Close Set tfm_downloadStream = Nothing Response.End() Else tfm_downloadStream.Close Set tfm_downloadStream = Nothing Response.write("Arquivo não encontrado") End If %>
Leia também:
janeiro 20th, 2010 at 23:52
Para onde o arquivo forçado e baixado?
janeiro 24th, 2010 at 15:43
Parabens!! Nota 10!
Eu estava tentando desenvolver algo parecido mais não funcionava!!
muiito obrigado!
janeiro 24th, 2010 at 20:18
O arquivo vai para onde o usuário salvar, normal.
agosto 16th, 2010 at 18:17
olá amigo, e como eu ativo esse script
agosto 16th, 2010 at 18:22
olá, na realidade estou com dificuldade de dizer o caminho até o arquivo pois ele está em outro diretório
janeiro 18th, 2011 at 11:15
Parabéns Ricardo, show de bola.
Estou com uma missão aqui parecida com esta.
Porém eu preciso fazer download de vários aquivos, que estão numa pasta.
Eu gravo no banco de dados uma ref. (nome do arquivo) que está numa pasta específica no servidor.
Com seu código, ele baixa o primeiro arquivo.
O que eu gostaria de fazer é que ele fizesse o download completo (de toda a lista) sem que pedisse pra salvar (automático) e também de toda a lista.
Pra isso eu incluí seu código dentro de um while mas mesmo assim só baixa o primeiro arquivo.
Tens alguma dica em relação a isso?
Abraço.
janeiro 19th, 2011 at 13:27
Então, Jeferson, acho que nesse caso só compactando todos os arquivos num .zip, por exemplo. Nunca vi isso de baixar um monte de arquivos de uma vez.
maio 24th, 2011 at 19:53
Ricardo… estou usando seu script em uma aplicação, porém elesó está funcionando com arquivos pequenos…
se tento baixar um .zip com 13MB o arquivo baixa em um segundo e vem corropido.
o que pode ser?