Upload de Arquivos com ASP.NET

agosto 11, 2008 12:21 by pauloholanda

Voltando ao velho mundo do ASP, fazer upload de arquivos através de uma página web era complicado. O problema era devido ao tipo de criptografia utilizada para enviar o arquivo através do navegador do cliente, receber esse arquivo no servidor era uma tarefa complexa.

Felizmente para nós, o Framework .Net vem com algumas classes que faz o upload dos arquivos a partir de uma aplicação simples. Esse artigo irá demonstrar isso.

public class uploadArquivo

Classe que usaremos para realizar upload, o legal é que podemos reaproveitá-la em outras aplicações, pois é bem dinâmica.

private FileUpload _fu;
private string _msg;
private string _pasta;
private string _nomeinicial;
private string _nomearquivo;

Algumas variáveis como _nomeinicial e _nomearquivo, servem principalmente para quem irá trabalhar com bd, pois poderá definir um prefixo para o nome do arquivo e guardar o nome que foi gerado no bd.

 public bool Save()
{
int maxSize = 10485760; //1 megabyte = 1 048 576 bytes
string extension = "";
bool result = false;
try
{
if (!fu.HasFile){
msg = "Nenhum arquivo foi selecionado!";
}
else if (fu.PostedFile.ContentLength > maxSize)
{
msg = "Arquivo utrapassou o tamanho máximo de 10 MB!";
}
else
{
extension = System.IO.Path.GetExtension(fu.FileName);
nomearquivo = _nomeinicial + DateTime.Now.Year + 
DateTime.Now.Month + 
DateTime.Now.Day + 
DateTime.Now.Hour + 
DateTime.Now.Minute + 
DateTime.Now.Second + extension;
fu.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath(".") + 
@"\" + _pasta + "\\" + _nomearquivo);
msg = "Arquivo enviado com sucesso!";
result = true;
}
}
catch (Exception ex) { 
System.Web.HttpContext.Current.Response.Write(ex.Message); 
result = false; 
}
finally
{
}
return result;
}

A função Save() retorna true se o arquivo foi salvo com sucesso ou false para o caso de ocorrer algum erro.

No nome do arquivo usamos o prefixo (_nomearquivo) concatenado com valores da data atual para evitar que arquivos com o mesmo nome sejam sobrepostos, definimos também um tamanho limite para o arquivo, que nesse caso foi de 10M.

Essa função irá retornar uma mensagem de erro ou sucesso e novo nome do arquivo como no exemplo a seguir:

 

Disponibilizamos os exemplos para download.

Até o próximo artigo!

 

UploadNet.zip (104,71 kb)

 

[]s,

Paulo Holanda


5.0 ponto(s). Avaliado por 1 pessoas

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Comentários

Comentar


(Vai mostrar seu Gravatar)  

  Country flag

biuquote
  • Comentário
  • Pré-visualização
Loading