Usuário com melhor resposta
Download de Arquivos

Pergunta
-
bom dia, tenho um código simples para fazer download de um arquivo. Pelo projeto funciona normalmente, porém em produção em um Host me retorna o erro:
URI formats are not supported.
Dim Diretorio As String = Server.MapPath("/Curriculuns/") Dim Stream As FileStream = New FileStream(Diretorio & NomeArquivo, FileMode.Open) Return File(Stream, "Baixar", NomeArquivo)
Alguém pode me ajudar? Desde já agradeço!
Paulo Marcelo Dalbosco
Respostas
-
Fúlvio, o erro só acontece em produção, ja com os arquivos no Host, pelo projeto em local host esta funcionando normalmente.
Minha estrutura esta assim:Dim NomeArquivo As String = Session("Foto") Dim Stream As FileStream = New FileStream(Server.MapPath("~/Curriculuns/") & NomeArquivo, FileMode.Open) Return File(Stream, "Baixar", NomeArquivo)
A Session("Foto") neste caso trás o restante do endereço, no caso "/NomeCandidato/Photo/NomeArquivo.png"
Obrigado pela atenção!
Paulo Marcelo Dalbosco
Pode ser o espaço! pode não sei!!!
Tente fixar em um controller algo e teste! se funcionar póde ser que está faltando fazer algo!
Faça um novo metodo e fixe um caminho e mande carregar sem espaço por favor!
- Marcado como Resposta Paulo M Dalbosco sexta-feira, 27 de dezembro de 2013 18:30
Todas as Respostas
-
Paulo, você tentou colocar a URI completa ?
Por exemplo:
Dim Diretorio As String = Server.MapPath( "http://path/to/resource.txt" )
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
-
Eu tentei sim Jean, mas pelo projeto, que me retorna este mesmo erro,
Paulo Marcelo Dalbosco
Dim Diretorio As String = Server.MapPath("~/Curriculuns/") Dim Stream As FileStream = New FileStream(Diretorio & NomeArquivo, FileMode.Open) Return File(Stream, "Baixar", NomeArquivo)
Tente assim com ~ no inicio do seu Server.MapPath !
-
-
Fúlvio, segui sua recomendação e ele me retorna outro erro.
The given path's format is not supported.
Obrigado pela ajuda de vcs!
Paulo Marcelo Dalbosco
Reproduzi o mesmo exemplo que o seu e funcionou: Observe
Function Upload() As ActionResult Dim NomeARquivo As String = "1.pdf" Dim Diretorio As String = Server.MapPath("~/Curriculuns/") Dim Stream As FileStream = New FileStream(Diretorio & NomeArquivo, FileMode.Open) Return File(Stream, "Baixar", NomeArquivo) End Function
Eu to achando que se ta esquecendo de fazer alguma coisa!
Aonde exatamente dá o erro qual linha ???
-
Fúlvio, o erro só acontece em produção, ja com os arquivos no Host, pelo projeto em local host esta funcionando normalmente.
Minha estrutura esta assim:Dim NomeArquivo As String = Session("Foto") Dim Stream As FileStream = New FileStream(Server.MapPath("~/Curriculuns/") & NomeArquivo, FileMode.Open) Return File(Stream, "Baixar", NomeArquivo)
A Session("Foto") neste caso trás o restante do endereço, no caso "/NomeCandidato/Photo/NomeArquivo.png"
Obrigado pela atenção!
Paulo Marcelo Dalbosco
- Editado Paulo M Dalbosco sexta-feira, 27 de dezembro de 2013 17:54
-
Fúlvio, o erro só acontece em produção, ja com os arquivos no Host, pelo projeto em local host esta funcionando normalmente.
Minha estrutura esta assim:Dim NomeArquivo As String = Session("Foto") Dim Stream As FileStream = New FileStream(Server.MapPath("~/Curriculuns/") & NomeArquivo, FileMode.Open) Return File(Stream, "Baixar", NomeArquivo)
A Session("Foto") neste caso trás o restante do endereço, no caso "/NomeCandidato/Photo/NomeArquivo.png"
Obrigado pela atenção!
Paulo Marcelo Dalbosco
Pode ser o espaço! pode não sei!!!
Tente fixar em um controller algo e teste! se funcionar póde ser que está faltando fazer algo!
Faça um novo metodo e fixe um caminho e mande carregar sem espaço por favor!
- Marcado como Resposta Paulo M Dalbosco sexta-feira, 27 de dezembro de 2013 18:30
-
-
-
Caro, segue um código em C#:
public ActionResult RetornarCV(string id) { var virtualFilePath = string.Empty; if (id == "pdf") virtualFilePath = @"~\down\cv-fabiano-nalin.pdf"; if (id == "docx") virtualFilePath = @"~\down\cv-fabiano-nalin.docx"; if (id == "doc") virtualFilePath = @"~\down\cv-fabiano-nalin.doc"; return File(virtualFilePath, System.Net.Mime.MediaTypeNames.Application.Octet, Path.GetFileName(virtualFilePath)); }
O mesmo funciona em meu site pessoal hospedado no Azure. Se quiser verificar como fica, acesse o link Download em http://fabianonalin.net.br/About/Curriculo
Abs.