Ir para conteúdo

POWERED BY:

Arquivado

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

Gilberto Jr

Erro arquvio .TXT

Recommended Posts

Bom dia;

 

Eu tenho um programa em asp classic que gera o arquivo txt e em seguida faz o download do mesmo.

 

Só que no final do arquivo .txt aparece o seguinte erro.

 

 

<font face="Arial" size=2>
<p>Response object</font> <font face="Arial" size=2>error 'ASP 0156 : 80004005'</font>
<p>
<font face="Arial" size=2>Header Error</font>
<p>
<font face="Arial" size=2>/consultoria/dados2.asp</font><font face="Arial" size=2>, line 117</font>
<p>
<font face="Arial" size=2>The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
</font>

 

O código que eu uso para gerar e fazer o download do arquivo é

<%
function mask_data( obj )
obj = CDAte( obj )
dia = Day( obj  )
mes = Month( obj )
ano = Year( obj )
 
if dia < 10 then
dia = "0" & dia
end if
 
if mes < 10 then
mes = "0" & mes
end if
 
mask_data = ano &"-"& mes &"-"& dia &" "&time
end function
 
function mask_dataa( obj )
obj = CDAte( obj )
dia = Day( obj  )
mes = Month( obj )
ano = Year( obj )
 
if dia < 10 then
dia = "0" & dia
end if
 
if mes < 10 then
mes = "0" & mes
end if
 
mask_dataa = ano &""& mes &""& dia
end function
 
 
 
response.Write(replace(replace(replace(mask_data(Date),"-","")," ",""),":",""))
 
rede = request.QueryString("rede")
loja = request.QueryString("loja")
 
dim conn
'Criamos o objeto de conexão
Set conn = Server.CreateObject("ADODB.Connection") 
 
'Abrimos uma conexão com o banco de dados - [IMPORTANTE] altere os dados abaixo com as informações de sua base de dados
conn.Open("DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;PORT=3306;DATABASE=database;USER=user;PASSWORD=pass;OPTION=3;")
 
set pastarede = conn.execute("select * from rede where id="&rede)
pathrede = pastarede("pasta")
 
set pastaloja = conn.execute("select * from loja where id="&loja)
pathloja = pastaloja("pasta")
 
'arquivo que checa se existe o login e a senha do usuario que esta tentando logar
 
dateMeAnt = month(Date)-1
 
set rsbusca = conn.execute("select count(*) as tt from arquivo where rede='"&request.QueryString("rede")&"' and loja='"&request.QueryString("loja")&"' and month(recebimento)='"&request.QueryString("Data")&"'")
 
if rsbusca("tt")="0" then
response.Write("<script>Alert('Não existe nota');location='?codigo='"&request.QueryString("codigo")&"'&rede='"&request.QueryString("rede")&"'&loja='"&request.QueryString("loja")&"''</script>")
 
else
 
set rs = conn.execute("select * from arquivo where rede='"&request.QueryString("rede")&"' and loja='"&request.QueryString("loja")&"' and dataemissao>='"&request.QueryString("data1")&"' and dataemissao<='"&request.QueryString("data2")&"'")
 
'notafiscal6 = rs("notafiscal")
 
'if len(rs("notafiscal")) = 5 then
'notafiscal = "0"&notafiscal6
'elseif len(rs("notafiscal")) = 6 then
'notafiscal = rs("notafiscal")
'end if
 
'set rs = conn.execute("select * from arquivo where rede='"&request.QueryString("rede")&"' and loja='"&request.QueryString("loja")&"' and month(dataemissao)='"&request.QueryString("data")&"'")
 
' Criando o objeto de gravação do arquivo
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
' Preparando o caminho (Path) do arquivo
caminho = Server.MapPath("arquivos/"&pathrede&"/"&pathloja&"/"&replace(replace(replace(mask_data(Date),"-","")," ",""),":","")&".txt")
Set GRAVAR = FSO.CreateTextFile(caminho,true)
'Foi criado o objeto e logo após busca o htm em caminho para gravar. Se não achar, vai criá-lo (devido à marcação TRUE)
while rs.eof=false
'excluir = replace(replace(replace(mask_data(Date),"-","")," ",""),":","")
'GRAVAR.write (replace(rs("notafiscal")&".", ".", "." + VbCrLf))
GRAVAR.Writeline (rs("notafiscal")&" "&rs("valor")&" "&rs("valoricms")&" "&mask_dataa(rs("dataemissao")))
'GRAVAR.write (rs("notafiscal")&" "&replace(rs("valor"),",","")&" "&replace(rs("valoricms"),",","")&" "&mask_dataa(rs("dataemissao"))&Chr(13))
rs.movenext
wend
'GRAVAR.write (request.form("Texto"))
 
GRAVAR.close
 
'É necessário passar o nome do arquivo no FORM
'Dim Arquivo
'Nome do arquivo que esta no value do input no formulario.
'Arquivo = replace(replace(replace(mask_data(Date),"-","")," ",""),":","")&".txt"
 
Response.Buffer = True
Response.AddHeader "Content-Type","application/x-msdownload"
Response.AddHeader "Content-Disposition","attachment; filename=" & replace(replace(replace(mask_data(Date),"-","")," ",""),":","")&".txt"
Response.Flush
 
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile Server.MapPath("arquivos/"&pathrede&"/"&pathloja&"/"&replace(replace(replace(mask_data(Date),"-","")," ",""),":","")&".txt")
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
Response.Flush
 
end if
 
response.redirect("arquivos/"&pathrede&"/"&pathloja&"/"&replace(replace(replace(mask_data(Date),"-","")," ",""),":","")&".txt")
%>

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja as permissões do arquivo, Você não pode usar response.redirect ou Response.Cookies depois de enviar qualquer conteúdo HTML para o navegador, a menos que você tenha habilitado Response.buffer = true. Este erro também pode acontecer se você escrever o conteúdo HTML para o navegador antes de definir uma resposta, propriedade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc pode executar todas as chamadas Response.Redirect antes de qualquer código do lado do cliente, incluindo a abertura <html> tag. e/ou usar Response.buffer = true primeiro, o que pode permitir que você para exibir o conteúdo antes de redirecionar ...

Ao utilizar Response.redirect com determinados navegadores, você pode obter a mensagem de erro Object Moved. Uma maneira de evitar que isso aconteça é usando Response.Clear primeiro, tipo:

 

 

<% 
    Response.Expires = 0 
    Response.Buffer = true 
    ' ... 
    Response.Clear 
    Response.Redirect "http://www.site.com" 
%>

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.