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
Resolvi escrever esse artigo, devido a
dificuldade que obtive em encontrar material sobre esse assunto, quando
precisei criar formulários diferentes dentro de um cenário.
Este pequeno artigo apresenta uma solução para criar controles e tags html dentro de um outro controle.
Criando a página a ser usada
o código abaixo é referente a página Artigo1.aspx, foi criado apenas um Panel identificado como Panel1.
Artigo1.aspx
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Artigo1.aspx.cs" Inherits="Artigo1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Criando controles dinamicamente</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
</div>
</form>
</body>
</html>
Artigo1.aspx.cs
public partial class Artigo1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//cria um novo controle dropdownlist
DropDownList ddl = new DropDownList();
//identifico o dropdownlist
ddl.ID = "ddlDinamico";
//adicionar alguns itens ao dropdownlist
ddl.Items.Add(new ListItem("goiaba"));
ddl.Items.Add(new ListItem("banana"));
ddl.Items.Add(new ListItem("laranja"));
//adicionar controle ao panel
Panel1.Controls.Add(ddl);
//usamos a função GetLiteral para adicionar tags/textos em html ao Panel
Panel1.Controls.Add(GetLiteral("<br />dropdownlist criado dinamicamente!!<br />"));
}
public Literal GetLiteral(string text)
{
Literal rv;
rv = new Literal();
rv.Text = text;
return rv;
}
}
a figura 01 é referente ao resultado da aplicação em execução.
figura 1
espero ter ajudado com essa dica, até a próxima!
[]s,
Paulo Holanda
5.0 ponto(s). Avaliado por 1 pessoas
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5