Usuário com melhor resposta
Baixar arquivo html gerado dinamicamente

Pergunta
-
Boa noite.
Tenho um sistema que gera boletos dinamicamente em html. Porém, como faço para gerar o baixar o arquivo para o computador do cliente?
Estou tentando gerar o arquivo... e salvar no PC do usuário e executar, porém... da erro de permissão.
Segue como estou tentando gerar:
string areaTrabalho = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
string nome_arquivo = areaTrabalho + "\\" + documento + ".html";
if (File.Exists(nome_arquivo))
{
File.Delete(nome_arquivo);
}
StreamWriter s = new StreamWriter(nome_arquivo, false, Encoding.Unicode);
s.AutoFlush = true;
StringBuilder sb = new StringBuilder();
sb.Append(arquivoHTML);
s.Write(sb.ToString());
s.Close();
System.Diagnostics.Process.Start(nome_arquivo);
Jones Palmitos-SC
- Movido Marcos SJ terça-feira, 13 de outubro de 2015 16:19 Adequação
Respostas
-
Jones_RB,
Como é o seu primeiro sistema web, para publicação, veja o link abaixo, acho que vai lhe ajudar.
https://msdn.microsoft.com/pt-br/library/dd483479%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396
Agora para permissão de pasta veja estes links abaixo. Espero que ajude.
https://msdn.microsoft.com/pt-br/library/bb763173%28v=vs.100%29.aspx
https://social.msdn.microsoft.com/Forums/pt-BR/ad97a843-5288-4a12-a375-5ddd998a8992/diretrio-como-fao-para-dar-permisso-na-aplicao-para-poder-escrever-em-uma-pasta-no-servidor?forum=webgeralpt
- Marcado como Resposta Marcos SJ quarta-feira, 14 de outubro de 2015 10:48
-
Jones,
Abaixo segue um link para aprender como ler e escrever um arquivo. Depois disso, você poderá gravar o arquivo e disponibilizar para o usuário baixar.
http://www.macoratti.net/aspn_txt1.htm
O link para disponibilizar para o usuário poderá ser assim em HTML:
<a href="caminho_arquivo">Download</a>
- Marcado como Resposta Marcos SJ quarta-feira, 14 de outubro de 2015 10:48
Todas as Respostas
-
Bom dia Jones,
Como essa é uma aplicação desktop, é necessário que o usuário da aplicação tenha acesso ao diretório onde você deseja salvar esses arquivos, senão dará erro de escrita mesmo.
Experimente, para teste, dar acesso completo no diretório e veja se o resultado será positivo.
Abs.
Bruno Destro
Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx
-
Bom dia Jones,
Como você postou no assunto ASP .NET, será necessário você gerar o arquivo no servidor e disponibilizar como link para o usuário baixar. Mas se for uma aplicação Desktop, faça como o Bruno Destro postou, onde o usuário da aplicação tem que ter acesso a pasta para leitura/escrita.
Att,
Cleber N Ramos -
Boa tarde.
A minha aplicação é web. Porém, o código acima... roda sem problema qdo compilo pelo visual studio... mas qdo publico no servidor e acesso na intranet... não funciona (não da permissão... rsrsrsr)
Como faria para salvar o arquivo no servidor e em seguida baixar no pc do cliente? Por enquanto estou usando o IIS 7 no proprio pc.
Obs.: esse é o meu primeiro sistema web em C#. Só havia programado em C# Desktop.
Obg.
Jones Palmitos-SC
- Editado Jones_RB terça-feira, 13 de outubro de 2015 15:49
-
Jones_RB,
Como é o seu primeiro sistema web, para publicação, veja o link abaixo, acho que vai lhe ajudar.
https://msdn.microsoft.com/pt-br/library/dd483479%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396
Agora para permissão de pasta veja estes links abaixo. Espero que ajude.
https://msdn.microsoft.com/pt-br/library/bb763173%28v=vs.100%29.aspx
https://social.msdn.microsoft.com/Forums/pt-BR/ad97a843-5288-4a12-a375-5ddd998a8992/diretrio-como-fao-para-dar-permisso-na-aplicao-para-poder-escrever-em-uma-pasta-no-servidor?forum=webgeralpt
- Marcado como Resposta Marcos SJ quarta-feira, 14 de outubro de 2015 10:48
-
-
Jones,
Abaixo segue um link para aprender como ler e escrever um arquivo. Depois disso, você poderá gravar o arquivo e disponibilizar para o usuário baixar.
http://www.macoratti.net/aspn_txt1.htm
O link para disponibilizar para o usuário poderá ser assim em HTML:
<a href="caminho_arquivo">Download</a>
- Marcado como Resposta Marcos SJ quarta-feira, 14 de outubro de 2015 10:48
-
Boa tarde!
Consegui.... no meu PC funcionou certinho. Segue o código:protected string uploadArquivo(string arquivo, string nomeArquivo)
{
try
{
string arquivoFisico = Server.MapPath("~/Boletos/" + nomeArquivo + ".html");
if (File.Exists(arquivoFisico))
{
File.Delete(arquivoFisico);
}
StreamWriter s = new StreamWriter(arquivoFisico, false, Encoding.Unicode);
s.AutoFlush = true;
StringBuilder sb = new StringBuilder();
sb.Append(arquivo);
s.Write(sb.ToString());
s.Close();
return DownloadArquivo(arquivoFisico);
}
catch (Exception ex)
{
return ex.Message;
}
}
protected string DownloadArquivo(string arquivo)
{
try
{
string strURL = arquivo;
WebClient req = new WebClient();
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.ClearContent();
response.ClearHeaders();
response.Buffer = true;
response.AddHeader("Content-Disposition", "attachment;filename=\"" + strURL + "\"");
byte[] data = req.DownloadData(strURL);
response.BinaryWrite(data);
response.End();
return "";
}
catch (Exception ex)
{
return ex.Message;
}
}Porém, coloquei para rodar no servidor (win7), não funcionou. Não abre nem o "localhost"... abre em branco.
Oque pode ser???Jones Palmitos-SC