Sample project plugin jquery File Upload plugin implemented in ASP .NET MVC3

rspaz16 picture rspaz16 · Feb 20, 2012 · Viewed 33.3k times · Source

I need to implement in my project ASP .NET MVC3 the jQuery file upload plugin:

http://blueimp.github.com/jQuery-File-Upload/

I have been Googling and I haven't found a whole project, only pieces of code. I don't know how to implement it.

Can someone help me? Can someone tell me where I can download a sample project or code?

Answer

Darin Dimitrov picture Darin Dimitrov · Feb 20, 2012

Did you read the documentation of the plugin that you are trying to use? Did you try the basic plugin functionality? Did you try to create a new ASP.NET MVC 3 application in Visual Studio using the default template?

Did you try writing a simple controller:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index(IEnumerable<HttpPostedFileBase> files)
    {
        foreach (var file in files)
        {
            var filename = Path.Combine(Server.MapPath("~/App_Data"), file.FileName);
            file.SaveAs(filename);
        }
        return Json(files.Select(x => new { name = x.FileName }));
    }
}

and a corresponding view:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="@Url.Content("~/Scripts/blueimp/js/vendor/jquery.ui.widget.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/blueimp/js/jquery.iframe-transport.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/blueimp/js/jquery.fileupload.js")" type="text/javascript"></script>

<script type="text/javascript">
    $(function () {
        $('#fileupload').fileupload({
            dataType: 'json',
            url: '@Url.Action("index")',
            done: function (e, data) {
                $.each(data.result, function (index, file) {
                    $('<p/>').text(file.name).appendTo(document.body);
                });
            } 
        });
    });
</script>

<input id="fileupload" type="file" name="files" multiple="multiple"/>

If you haven't, I invite you to do so.