Usuário com melhor resposta
Não consigo baixar aquivos texto pelo browser

Pergunta
-
Prezados,
Estou com o seguinte problema: estou gerando um arquivo .txt e tentando fazer o download deste para a máquina do usuário com o seguinte código:
string nomeArq = "Fornecedor_" + id + "_Produto_" + prod.descricao.Replace(" ", "_") + "_" + DateTime.Now.ToString("dd_MM_yyyy_hh_mm_ss") + ".txt"; string nomeArq2 = "Fornecedor_" + id + "_Produto_" + prod.descricao.Replace(" ", "_") + "_" + DateTime.Now.ToString("dd_MM_yyyy_hh_mm_ss") + "x.txt"; // //foi necessário criar o arquivo primeiro e depois ler. E passar como binário. using (System.IO.StreamWriter SW = new System.IO.StreamWriter(Server.MapPath("~/ArqTxt/" + nomeArq2))) { SW.Write(sbDados.ToString()); SW.Close(); } //FileInfo aFile = new FileInfo(Server.MapPath("~/App_Data/") + nomeArq); System.IO.FileStream fs = null; fs = System.IO.File.Open(Server.MapPath("~/ArqTxt/") + nomeArq2, System.IO.FileMode.Open); byte[] btFile = new byte[fs.Length]; fs.Read(btFile, 0, Convert.ToInt32(fs.Length)); fs.Close(); //Código para o envio do arquivo. //Response.ContentType = "application/text"; //Response.AppendHeader("Content-Disposition", "attachment;filename=" + nomeArq); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=" + nomeArq); //Response.AddHeader("Content-Length", btFile.Length.ToString()); //Response.ContentType = "APPLICATION/OCTET-STREAM"; //Response.Flush(); Response.BinaryWrite(btFile); //Response.TransmitFile(Server.MapPath("~/ArqTxt/") + nomeArq); //Response.WriteFile(Server.MapPath("~/ArqTxt/") + nomeArq); //ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "popup", "ShowPopup('Arquivo Baixado!');", true); Response.End();
Mas, quando clico no botão ele não me gera absolutamente nada. O que será que pode estar acontecendo?
Obrigado!
Respostas
-
Alisson vc tem que fazer assim :
1 - cria o arquivo em uma pasta fisica assim
WL_nomearquivo = HttpContext.Current.Server.MapPath("~/pasta fisica/nomedo arquivo.txt");
2 - Para permitir que o usuário baixe o arquivo eu crio um label e dentro dele coloco um link com o caminho do arquivo.
Lbl_Conteudo.Text += "<td align=" + "center" + "><a href=" + "/pastafisica/nomedoarquivo.txt" + target=" + "_blank" + " + " + ">" + "Clique aqui com o botão esquerdo e escolha salvar destino como" + "</a></td>";
Junior
- Marcado como Resposta Alisson_inf sexta-feira, 19 de dezembro de 2014 10:41
Todas as Respostas
-
Alisson vc tem que fazer assim :
1 - cria o arquivo em uma pasta fisica assim
WL_nomearquivo = HttpContext.Current.Server.MapPath("~/pasta fisica/nomedo arquivo.txt");
2 - Para permitir que o usuário baixe o arquivo eu crio um label e dentro dele coloco um link com o caminho do arquivo.
Lbl_Conteudo.Text += "<td align=" + "center" + "><a href=" + "/pastafisica/nomedoarquivo.txt" + target=" + "_blank" + " + " + ">" + "Clique aqui com o botão esquerdo e escolha salvar destino como" + "</a></td>";
Junior
- Marcado como Resposta Alisson_inf sexta-feira, 19 de dezembro de 2014 10:41
-
-