Upload de arquivos : Ajax e jQuery em asp.net

Nesse artigo ensino como fazer upload de arquivos com ajax utilizando webservice e jquery.

Olá pessoal sejam bem vindos a mais um artigo sobre Ajax, pretendo mostrar nesse artigo como fazer upload de arquivos com Ajax para auxiliar nesse exemplo vou usar duas bibliotecas jQuery e Ajaxupload.

As vantagens de fazer upload de arquivos com Ajax seria da sua implementação e possível utilização de qualquer recurso de Ajax do ASP.NET que não vai interferir no upload.

Para começar o desenvolvimento do nosso exemplo crie um projeto do tipo Web e adicione a biblioteca jQuery e Ajaxupload segue abaixo os links para download.

Depois que fazer o download inclua as duas bibliotecas no projeto e crie agora um WebService do tipo Handler.ashx com nome de upload.

Esse handler será responsável por recuperar do HttpContext nossa requisição e salvar arquivo no diretório desejado como mostra abaixo.

public void ProcessRequest(HttpContext context) { if (context.Request.Files.Count > 0) { string path = context.Server.MapPath("~/upload/"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } HttpPostedFile postFile = context.Request.Files[0]; postFile.SaveAs(path + postFile.FileName); context.Response.ContentType = "text/plain"; context.Response.Write("Sucesso"); } }

A função do nosso handler é bem simples recuperar do Context o arquivo verificar se existe o diretório e salvar o arquivo.

O segundo passo agora e acrescentar a chamada do ajaxupload e colocar na nossa página input do tipo file.

<script type="text/javascript"> $(document).ready(function () { var interval = 0; var options = { action: 'upload.ashx', autoSubmit: true, onSubmit: function (file, ext) { { var button = $('#msg') button.text('Uploading'); this.disable(); interval = window.setInterval(function () { { var text = button.text(); if (button.text().length < 13) { { button.text(button.text() + '.'); } } else { { button.text('Uploading'); } } } }, 200); } }, onComplete: function (file, response) { var button = $('#msg') button.text(response.toString()); button.removeClass('hover'); window.clearInterval(interval); this.enable(); } }; new AjaxUpload('#myFileUpload', options); }); </script>

E acrescente o HTML abaixo e execute a aplicação.

<input id="myFileUpload" type="file" /> <p id="msg"></p>

De forma simples criamos um sistema de upload de arquivos com Ajax espero que tenham gostado até a próxima.

Artigos relacionados