Ir para conteúdo

POWERED BY:

Arquivado

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

Martinsrj

[Resolvido] [Erro] Forçando Downloads

Recommended Posts

Mensagem de erro:

Server.MapPath() error 'ASP 0171 : 80004005'

 

Missing Path

 

/background/html/teste/sistema/bac54_arqareadocliente.asp, line 333

 

The Path parameter must be specified for the MapPath method.

O meu código está assim:

<a href='documentos/<%=rs.fields("nome")%>?arquivo=<%=rs.fields("nome")%>' target="_blank"><%=rs.fields("nome_orig")%></a>
				<%
				'É necessário passar o nome do arquivo no FORM
				Dim Arquivo
				Arquivo = Request("arquivo")
				Response.Write(Arquivo)
				'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	
				%>

 

A linha é esta: objStream.LoadFromFile Server.MapPath(Arquivo)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca acima da linha com erro:

 

Response.Write Arquivo : Response.End

 

Poste o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colocando os comandos que você mencionou ele não dá nenhum erro e lista apenas um arquivo, porem existe vários na pasta.

Obs.: o downloads continua não funcionar.

 

Coloca acima da linha com erro:

 

Response.Write Arquivo : Response.End

 

Poste o resultado.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O objetivo é não dar erro e mostrar o caminho do arquivo.

 

Provavelmente é erro no caminho. Verifica isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei o caminho, veja abaixo:

'objStream.LoadFromFile Server.MapPath(Arquivo)

objStream.LoadFromFile Server.MapPath("documentos/"&Arquivo)

 

Agora da esse erro:

ADODB.Stream error '800a0bba'

 

File could not be opened.

 

/background/html/teste/sistema/bac54_arqareadocliente.asp, line 339

 

 

A linha 339 é essa: objStream.LoadFromFile Server.MapPath("documentos/"&Arquivo)

 

 

O objetivo é não dar erro e mostrar o caminho do arquivo.

 

Provavelmente é erro no caminho. Verifica isso.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifica o conteúdo da variável arquivo e veja se é o caminho correto do arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora eu inseri o seguinte código:

'CRIANDO O OBJETO “STREAM”
Set ObjStr = Server.CreateObject("ADODB.Stream")
								
'INDICANDO O ENDEREÇO DA IMAGEM
ds_addr_imagem = Server.MapPath("documentos/"&Arquivo)
								
'INDICA O TIPO DE DADO QUE O OBJETO DEVERÁ LER
'ObjStr.Type = 1 ‘AdBinary – Binário
ObjStr.Type = 1 
								
'ABRE O OBJETO
ObjStr.Open
								
'LE INFORMAÇÕES DO ARQUIVO
ObjStr.LoadFromFile ds_addr_imagem
								
'DECARREGA INFORMAÇÕES NA VARIAVEL
varBuffer = ObjStr.Read
								
'DESTROI O OBJETO “STREAM”
objStr.Close
Set ObjStr = nothing

OCORRE o seguinte erro:

File could not be opened.

 

/sistema/html/teste/sistema/bac54_arqareadocliente.asp, line 362

 

Agora uma pergunta, será que eu estou utilizando o objeto correto para que quando o usuario ao clicar no link force o downloads?

 

 

Verifica o conteúdo da variável arquivo e veja se é o caminho correto do arquivo.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, bom dia!

Consegui resolver a situação em parte. Consigo realizar o download das extensões DOC, XLS, porem as extensões ppt, pptm continua dando erro, pois além de não abrir no browser não permite o downloads.

 

SEGUE abaixo o código atualizado:

'o link abaixo é o responsavel para direcionar para o arquivo desejado
<a href='documentos/<%=rs.fields("nome")%>?arquivo=<%=rs.fields("nome")%>' target="_blank"><%=rs.fields("nome_orig")%></a>

</td>
		
<td>
	<% 
	'29/01/2010 - atenção, a variavel arquivo declarado no link acima não recebe o nome do arquivo
	'Response.Write arquivo & "Imprimindo o arquivo"
	'Response.End()
	'cria o objeto Scripting.FileSystemObject e atribui a variável objFSO
	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
	
	'pega o caminho e características da pasta "documentos" e atribui a objFolder
	Set objFolder = objFSO.GetFolder(Server.MapPath("documentos"))
	
	'Escreve no navegador o caminho completo da pasta (Ex: E:\inetpub\wwwdata\background\html\Teste\sistema\documentos
	'Response.write objFolder.Path
	
	'Response.Write objFolder.Size & "em byte" 'Retorna o tamanho total da pasta, incluindo todos os seus arquivos.
	Set fc = objFolder.Files
	totalArq = fc.count
	
	tamArq = Server.MapPath (".") & "\" & objFolder.Name 
	'Response.Write(tamArq)
	Set arqObj = objFSO.GetFile(tamArq&"\"&rs.fields("nome"))
	'Response.Write round(arqObj.Size / 1024) & " KB"
	'varDataUacesso = varDataUacesso & arqObj.DateLastAccessed
	
	'imprimo o nome do arquivo.
	'Response.write arqObj.Name
	'Response.write objFolder.Name &"\"& arqObj.Name
	
	
if Request("arquivo") <> "" then								
	'--------------------------------------------------------------------------
	Response.Buffer = True
	Dim strFilePath, strFileSize, strFileName
	
	Const adTypeBinary = 2
	
	'strFilePath = "C:\ whatever the path is "
	strFilePath = objFolder.Path
	'strFileSize = ... the size of file .. optional
	strFileName = arqObj.Name
	
	Response.Clear
	
	'8*******************************8
	' Requires MDAC 2.5 to be stable
	' I recommend MDAC 2.6 or 2.7
	'8*******************************8
	'Response.AddHeader "Content-Type","application/x-msdownload"
	Response.AddHeader "Content-Disposition","attachment; filename="&rs.fields("nome_orig")
	Set objStream = Server.CreateObject("ADODB.Stream")
	objStream.Open
	'objStream.Type = adTypeBinary
'				Response.Write arquivo & "Imprimindo o arquivo"
'				Response.End()
	objStream.LoadFromFile strFilePath
	
	strFileType = lcase(Right(strFileName, 4))
	
	
	' Feel Free to Add Your Own Content-Types Here
	Select Case strFileType
	Case ".asf"
	ContentType = "video/x-ms-asf"
	Case ".avi"
	ContentType = "video/avi"
	Case ".doc"
	ContentType = "application/msword"
	case ".ppt", ".pps",".pptm"
	'ContentType = "application/mspowerpoint"
	'ContentType = "application/vnd.ms-powerpoint"
	ContentType = "application/x-powerpoint"	
	'Informação sobre forçar o downloads em arquivo .txt
	'http://www.plugmasters.com.br/forum/lofiversion/index.php/t8047.html
	Case ".txt" 
	ContentType = "text/plain"
	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 ".pdf"
	ContentType = "application/pdf"
	

	Case Else
	'Handle All Other Files
	ContentType = "application/octet-stream"
	End Select
	
	'Response.AddHeader("Content-type: Application/Octet-stream")
	'Response.AddHeader "Content-Disposition", "attachment; filename="& rs.fields("nome_orig")
	Response.AddHeader "Content-Length", strFileSize
	' In a Perfect World, Your Client would also have UTF-8 as the default 
	' In Their Browser
	Response.Charset = "UTF-8"
	Response.ContentType = ContentType
	
	Response.BinaryWrite objStream.Read
	Response.Flush
	
	objStream.Close
	Set objStream = Nothing
	
	'------------------------------------------------------------------------------
End if

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele gera algum erro ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Xanburzum, boa madrugada!

Possuo essa tela onde o usuario clica para realizar o downloads:

Imagem Postada

 

E abaixo é o erro gerado quando o usuario clica no link: 2009 -ceg na imprensa-dezembro.pptm, porem se o usuario clicar no link: arquivo do word - teste.doc automaticamente aparece uma janelinha perguntando se eu quero abrir, salvar ou cancelar.

Imagem Postada

 

Desde já agradeço.

 

ele gera algum erro ???

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se esta habilitado a oopção do browser de exibir mensagens de erro HTTP amigáveis e desabilite

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desabilitei, mas o erro continua com a mesma mensagem.

Já nao sei o que faço. Vou repetir o que está acontecendo de uma outra forma.

Quando clico no link: arquivo do word - teste.doc conforme a imagem abaixo aparece a janelinha de Downloads de Arquivo, porem isso não ocorre na extensão do office 2007 e sendo mais especifico no do poewr point no qual fiz o teste.

http://uploaddeimagens.com.br/imagem/ver/3erro3.jpg
Imagem Postada

Aqui segue um exemplo do erro do ultimo link chamado: teste.pptx conforme o print anterior e abaixo o erro quando clico nesse link:

Imagem Postada

 

Desde já agradeço pelos esclarecimentos http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Verifique se esta habilitado a oopção do browser de exibir mensagens de erro HTTP amigáveis e desabilite

 

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.