Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

feasso

Forçar Download

Recommended Posts

Como faço para que ao clicar no link, seja aberto a janela de download ?

 

Não quero que o arquivo seja visualizado no navegador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se isto lhe atende:

 

sNomeArquivo 	= sNomeDiretorioEdital & DE_CAMINHO_EDITAL 

Response.Buffer=true

Dim tfm_downloadStream
Set tfm_downloadStream = Server.CreateObject("ADODB.Stream")
tfm_downloadStream.Type = 1
tfm_downloadStream.Open
tfm_downloadStream.LoadFromFile sNomeArquivo 'Server.Mappath(arquivo)
If Err.number = 0 Then
	Response.Clear
	Response.ContentType = "application/octet-stream"
	Response.AddHeader "Content-Disposition", "attachment; filename="+sNomeArquivo
	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


response.end

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu preciso é o seguinte:

 

Tenho um link que aponta para um .doc, por exemplo, e quando a pessoa clica no link, ele deverá fazer o dowload do .doc, ao invés de mostrar o .doc direto no browser.

 

<a href="admin/biblioteca/arquivos/ARQUIVO.doc">nome_arquivo</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu sei sempre vai dar a opção de salvar ou abrir.

Não quer abir clique em salvar.

 

O exemplo de código que postei faz justamente isto.

 

Desconheço com impedir estas opções. Agora isto não quer dizer que não tenha como ser feito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, isto está funcionando.

 

Passei a função para o onclick e dei um void(0) no href.

 

Mas como eu faço para ocultar o que está sendo passado no onclick ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você quer dizer o caminho do arquivo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo:

 

<%
Dim Arquivo
Arquivo = Request.form("nome_do_campo")

Response.Buffer = True
Response.AddHeader "Content-Type","application/x-msdownload"
Response.AddHeader "Content-Disposition","attachment; filename=" & Arquivo
Response.Flush

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile Server.MapPath(Arquivo)
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
Response.Flush
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é o caminho do arquivo e sim os parametros que estão sendo passados.

 

A minha intenção é impedir que alguém passe os parametros diretamente pela URL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola bom dia tudo bem ?

Bom eu sou novo no forum e gostaria de uma ajudinha.

Estou utilizando o codigo acima para fazer dowload

pois o mesmo esta trazendo os arquivos ou imagem corumpido.

alguem poderia me ajudar ??

Help me...

 

olha este exemplo:

 

<%
Dim Arquivo
Arquivo = Request.form("nome_do_campo")

Response.Buffer = True
Response.AddHeader "Content-Type","application/x-msdownload"
Response.AddHeader "Content-Disposition","attachment; filename=" & Arquivo
Response.Flush

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile Server.MapPath(Arquivo)
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
Response.Flush
%>

xanburzum estou utilizando o codigo que você postou no forum

porem os arquivos estao vindo corumpidos.

pode me ajudar ??

Obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas complementando...

 

Lembrem-se que em muitos servidors você precisa informar qual é o tipo do arquivo.. para que o mesmo nao venha corrompido.. ou pela metade..

 

Segue um exemplo que uso..

 


<%
Arquivo = Request.QueryString("Arquivo")
Arqs = Split(Arquivo,"/")
vnome = Arqs(3)
      v_path = Server.MapPath("..\admin\arquivos\") & "\" & vnome

   Select Case LCase(Right(vnome, 4))
      Case ".asf"
         v_type = "video/x-ms-asf"
      Case ".avi"
         v_type = "video/avi"
      Case ".doc"
         v_type = "application/msword"
      Case ".zip"
         v_type = "application/zip"
      Case ".xls"
         v_type = "application/vnd.ms-excel"
      Case ".gif"
         v_type = "image/gif"
      Case ".jpg", "jpeg"
         v_type = "image/jpeg"
      Case ".wav"
         v_type = "audio/wav"
      Case ".mp3"
         v_type = "audio/mpeg3"
      Case ".mpg", "mpeg", "mpga"
         v_type = "video/mpeg"
      Case ".rtf"
         v_type = "application/rtf"
      Case ".htm", "html"
         v_type = "text/html"
      Case ".asp"
         v_type = "text/asp"
	  Case ".rar"
	  	 v_type = ".rar application/octet-stream"	
	  Case ".tif"
	  	 v_type = "image/tif"		 
	  Case ".tiff"
	  	 v_type = "image/tiff"		 
	  Case ".psd"
	  	 v_type = "application/octet-stream"	
	  Case ".ai"
	  	 v_type = "application/postscript"	
	  Case ".xls"
	  	 v_type = "application/vnd.ms-excel"		 
	  Case ".doc"
	  	 v_type = "application/msword"		 
	  Case ".ppt"
	  	 v_type = "application/vnd.ms-powerpoint"		 
      Case Else
         v_type = "application/octet-stream"
   End Select

   Set objFso = Server.CreateObject("Scripting.FileSystemObject")
   If objFso.FileExists(v_path) Then
      Set objFile = objFso.GetFile(v_path)
      Response.Clear
      Response.AddHeader "Content-Disposition", "attachment; filename=" & objFile.Name
      Response.AddHeader "Content-Length", objFile.Size
      Response.ContentType = v_type

      Set varBinario = Server.CreateObject("ADODB.Stream")
      varBinario.Open
      varBinario.Type = 1
      Response.CharSet = "UTF-8"
      varBinario.LoadFromFile(v_path)
      Do Until varBinario.EOS
         Response.BinaryWrite(varBinario.Read(3000))
         Response.Flush
      Loop
      varBinario.Close
      Set varBinario = Nothing
      Set objFile = Nothing
   Else
      Response.Clear
      Response.Write("<p align='center'>Arquivo não localizado<br /><br />Por favor, entre em contato com suporte.</p>")
      Response.End()
   End If
   Set objFso = Nothing

%>

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.