Ir para conteúdo

POWERED BY:

Arquivado

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

Teteu

Erro ao inicar download do arquivo

Recommended Posts

Olá pessoal,

 

Seguinte, eu tenho um código onde eu seleciono os arquivos que desejo baixar e mando fazer o download, quando ele faz vai iniciar o processo ele cria um arquivo zip com todos os arquivos selecionados até aqui funciona certinho.

O problema é que no firefox ele carrega e abre a janela para salvar o arquivo. Já no IE, ele começa a carregar, não dá nenhum erro e fecha a janela sem exibir a janela para salva ou abrir o arquivo.

 

O código que estou usando é esse:

 

Set objFile = objFso.GetFile(v_path)
Response.Clear
Response.AddHeader "Content-Disposition", "attachment; filename=" & v_file
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)

Response.BinaryWrite(varBinario.Read)
Response.Flush

varBinario.Close
Set varBinario = Nothing
Set objFile = Nothing

Alguém tem idéia de pq no fire vai e no ie não?

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, desabilitei e não aparece nem um erro.

 

Fiz vários testes, vi se ele localizava o arquivo correto, se o nome do arquivo estava certo etc...

 

O problema tá só no IE, já que no firefox, ele dá certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal... ainda não consegui resolver meu problema.

 

Fiz uns testes aqui, onde eu paro a execução antes de iniciar o carregamento do arquivo.

 

Ai quando removo o Response.end() e dó um F5 ele aparece a janela para salvar ou abrir o arquivo.

Mas se mando fazer o download sem parar a execução e não exibe a janela para salvar ou abrir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta a configuracaun do browser IE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em qual sentido?

 

Pq não é só no meu, tentei em outros micros, e não vai tbm..

 

Fiz umas mudanças aqui, gero o arquivo zip e salvo ele num diretório.

 

E quando clico direto no link desse arquivo .zip, aparece a janela para salvar ou abrir o arquivo.

 

Mas quando, é para abrir após fazer o zip ele não vai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

será k por padarun ele nao tem alguma config. k esta blokeando !?!??!

tenho um sistema de download, e roda normal no IE,e abre a janela para salvar o arquivo

normal...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz uma outra mudança aqui:

 

Tá usando o processo:

Cria o zip, depois que cria o zip, usando o window.open enviando o nome do arquivo para o download.

 

Agora faço uma validação do download.asp que qdo entra pela primeira vez na pagina, uso o window.location para recarregar a pagina passam os parâmetros novamente. Só que dá aparece aquela mensagem do IE de segurança, falando que Para minha segurança etc... o download foi bloqueado.

 

Tem algum jeito de evitar essa mensagem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está infomando o que em v_type?

Response.ContentType = v_type

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou informando o tipo do arquivo.

É feita uma verificação do tipo de arquivo:

Select Case LCase(Right(v_file, 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"
response.redirect("proibido.asp")
Case Else
v_type = "application/octet-stream"
End Select

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o teste em outro navegador além do FF e IE. Se o erro acontecer só no IE, provavelmente é interferência de alguma configuração ou software, conforme mencionado acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hargon, testei no chrome, safari e opera...

 

Só no safari que não abriu a janela, nos demais funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

use sem moderação estas funções que fiz

   
   <%
   'página index.asp
   Const DIRETORIO_UPLOAD = "c:\inetpub\wwwroot\arquivos" 'diretorio onde ficam armazenados os arquivos para download
       Function downloadFile(file)
           Server.ScriptTimeout = 30000        
           Dim fileSize
           Dim chunk
           Dim i
           Dim objStream
           Dim ContentType
           Dim extensaoArquivo        
           chunk = 2048        
           If file <> "" Then       
               extensaoArquivo = Lcase(Trim(Mid("" & file, InStrRev("" & file, "."))))
               Select Case extensaoArquivo
                   Case ".asf"
                       ContentType = "video/x-ms-asf"
                   Case ".avi"
                       ContentType = "video/avi"
                   Case ".doc"
                       ContentType = "application/msword"
                   Case ".zip"
                       ContentType = "application/zip"
                   Case ".xls"
                       ContentType = "application/vnd.ms-excel"
                   Case ".gif"
                       ContentType = "image/gif"
                   Case ".jpg", ".jpeg"
                       ContentType = "image/jpeg"
                   Case ".wav"
                       ContentType = "audio/wav"
                   Case ".mp3"
                       ContentType = "audio/mpeg3"
                   Case ".mpg", ".mpeg"
                       ContentType = "video/mpeg"
                   Case ".rtf"
                       ContentType = "application/rtf"
                   Case ".htm", ".html"
                       ContentType = "text/html"
                   'Case ".asp"
                       'ContentType = "text/asp"
                   Case Else
                       ContentType = "application/octet-stream"
               End Select              
               Response.Buffer = False 
               If instr(lcase(file), ".asp") Then Response.End
               response.AddHeader "Content-Type", ContentType
               response.AddHeader "Content-Disposition","attachment; filename=" & getFileName(DIRETORIO_UPLOAD & "" & file)
               Const adTypeBinary = 1
               Set objStream = Server.CreateObject("ADODB.Stream")
               objStream.Open
               objStream.Type = 1 '[ binary
               objStream.LoadFromFile DIRETORIO_UPLOAD & "" & file            
               fileSize = objstream.Size
               Response.AddHeader "Content-Length", fileSize            
               For i = 1 To fileSize  chunk
                   If Not Response.IsClientConnected Then Exit For
                   Response.BinaryWrite objstream.Read(chunk)
               Next
               If fileSize Mod chunk > 0 Then
                   If Response.IsClientConnected Then
                       Response.BinaryWrite objstream.Read(fileSize Mod chunk)
                   End If
               End If            
               objStream.Close : Set objStream = Nothing
           end if
       End Function
       Function getFileName(ByVal fileName)
           dim fso, file        
           set fso = server.createObject("Scripting.FileSystemObject")
           set file = fso.getFile(fileName)        
           getFileName = file.name        
           set file = nothing
           set fso = nothing
       End Function
   Dim arquivo
   arquivo = request.querystring("arquivo")
   if arquivo <> "" Then
   Call downloadFile(arquivo)
   End If
   %>
   <html>
   <head>
   <body>
   <a href="index.asp?arquivo=meuarquivo.zip">download</a>
   </body>
   </head>
   </html>

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.