Editor Ajax com Imagem
Caro(a) Internauta, gostaria falar hoje sobre o editor Ajax que a Microsoft disponibilizou para nós através do AjaxToolkit. Existem vários outros componentes no mercado que servem como editor, porém este foi o que me ajudou de forma simples a fazer upload de imagem no próprio componente.
Quero dizer que no próprio editor, consegui colocar um botão com imagem para fazer upload de forma dinâmica.
As ferramentas utilizadas foram:
- Visual Studio 2012
- Framework .NET 4.0
- Componente AjaxToolkit (www.asp.net)
- Plataforma ASP.NET (web)
- Linguagem C#.NET
A figura 1.1 mostra como vai ficar a tela com o editor de texto . Note que existem os botões customizados dentro do próprio editor. Um botão desses funciona o upload de imagem. Vamos ver como ficará o código para aparecer isso na tela.

Figura 1.1 – Editor de texto com imagem
Com este exemplo da figura 1.1, ao clicar no botão da imagem automaticamente aparece outra tela para fazer o upload com a quantidade que achar necessário e no formato que achar melhor, basta configurar.
O primeiro passo é colocar os componentes no seu Visual Studio 2012, acesse o link abaixo que fala como colocar a dll.
Depois de adicionar os componentes na ferramenta, basta utilizá-lo. Crie uma página e adicione as linhas a seguir. Após a tag chamada
Listagem 1.1 – Primeira linha
Para isso, o topo da página terá um registro do assembly, listagem 1.2.
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
Listagem 1.2 – Registro do Ajax na página
O próximo passo é adicionar o HTMLEditorExtender dentro da página. A regra dele é simples. Coloque um textbox e o que ficará no topo da barra, listagem 1.3.
DisplaySourceTab="true" runat="server" EnableSanitization="false">
Runat="server" Height="545px" Width="693px" />
Listagem 1.3 – Usando HTMLEditorExtender
Até o momento, mexemos apenas com o editor de HTML. Note que coloquei dentro do
Note que o campo textbox txtComments foi indicado como TargetControlId e ainda existe o
Depois disso, é necessário customizar algumas coisas importantes no editor HTML. O primeiro passo é gerar um método chamado OnImageUploadComplete, listagem 1.4.
OnImageUploadComplete="MyHtmlEditorExtender_ImageUploadComplete"
DisplaySourceTab="true" runat="server" EnableSanitization="false">
Listagem 1.4 – Adicionando o método OnImageUploadComplete
Para adicionar o método basta escrever o nome e no momento certo a ferramenta vai te perguntar se gostaria de gerar o método no arquivo .cs.
O próximo passo é colocar mais um atributo dentro da tag , listagem 1.5.
Listagem 1.5 – Adicionando tag InsertImage.
Agora o editor HTML está pronto para adicionar a imagem, pelo menos o HTML. Veja como ficou o componente HTML. Precisamos agora programar a parte do C#, listagem 1.6.
protected void MyHtmlEditorExtender_ImageUploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{}
Listagem 1.6 – Adicionando código para upload
A listagem 1.6 mostra o código para upload da imagem vazio e precisa colocar códigos dentro. O que precisa colocar é o código que pega a imagem, pega o endereço para gravar e envia a para o local especificado.
Para não ter problemas com o nome da mesma imagem, adicionei sempre um GUID na frente do nome da imagem, ao invés de verificar sempre se uma imagem já existe com aquele nome.
Depois de salvar a imagem dentro do diretório do seu servidor ou computador local, basta mandar a imagem ser exibida no controle HTML, listagem 1.7.
string filename = System.IO.Path.GetFileName(e.FileName);
filename = Guid.NewGuid() + filename;
string endereco = "~/img/" + filename;
var ajaxFileUpload = (AjaxFileUpload)sender;
ajaxFileUpload.SaveAs(MapPath(endereco));
e.PostedUrl = Page.ResolveUrl(endereco);
Listagem 1.7 – fazendo upload da imagem
A primeira linha pega o nome do arquivo. A segunda linha adiciono um GUID antes do nome. Depois criei uma variável de endereço indicando a pasta "~/img" onde vai ficar a imagem.
Depois peguei o "sender" vindo do método e transformei em AjaxFileUpload com a variável do tipo var. Peguei a variável e chamei o método "SaveAs" para salvar a imagem na pasta com o endereço criado.
Para exibir a imagem dentro do controle, adicionei o e.PosteURL = Page.ResolveUrl(endereco), assim a imagem aparece carregada dentro do controle. Listagem 1.8.
protected void MyHtmlEditorExtender_ImageUploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
string filename = System.IO.Path.GetFileName(e.FileName);
filename = Guid.NewGuid() + filename;
string a = "~/img/" + filename;
// Save uploaded file to the file system
var ajaxFileUpload = (AjaxFileUpload)sender;
ajaxFileUpload.SaveAs(MapPath(a));
// Update client with saved image path
e.PostedUrl = Page.ResolveUrl(a);
}
Listagem 1.8 – Método que faz upload.
Ainda falta colocar no "load" na página para configurar o componente.
protected void Page_Load(object sender, EventArgs e)
{
var ajaxFileUpload = MyHtmlEditorExtender.AjaxFileUpload;
ajaxFileUpload.AllowedFileTypes = "jpg,jpeg";
ajaxFileUpload.MaximumNumberOfFiles = 5;
}
Listagem 1.9 – Page_Load da página
No Page_Load adicionei o nome do editor e configurei para aceitar apenas o arquivo do tipo JPG e JPEG. Você pode adicionar vários outros como PNG, GIF e BMP; basta separar por vírgula os tipos diferentes.
A linha abaixo informa a quantidade de arquivos que podem ser feitos upload, o controle Ajax controla isso. Ao clicar na imagem apareceu a tela pedindo para selecionar ou arrastar a imagem para dentro. Figura 1.2

Figura 1.2 – Tela pra upload.
Ele só aceitar jogar a imagem se o seu browser estiver preparado para HTML5. Caso estiver usando ou browser mais velho o componente aparece apenas o botão para selecionar. Esse componente permite que a seleção dos arquivos seja do tipo dinâmico, isto é, mais de um ao mesmo tempo.
Depois que cliquei no botão selecionar, apareceu o meu computador para escolher os arquivos/imagens. Figura 1.3.

Figura 1.3 – Selecionando arquivos
Como eu configurei o componente para aceitar apenas JPEG e JPG e eu selecionei o PGN e TXT o componente já descarta. Figura 1.4.

Figura 1.4 – Descartando os outros arquivos
Depois de clicar no botão upload a imagem já apareceu no editor. Figura 1.5

Figura 1.5 – Imagem no editor.
Bom, espero que tenha gostado e qualquer dúvida só entrar em contato pelo site pessoal www.mauriciojunior.org.
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.
Type the article name and click enter
ecode10.com