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