asp.net mvc ajax上传解决方案?

时间:2011-10-27 07:26:57

标签: asp.net asp.net-mvc ajax-upload

我正在寻找好的ajax上传解决方案。

我尝试使用

1)SWFUpload(工作正常,但只适用于一个文件)

2)Jquery Ajax插件(它不起作用,它不支持IE中的进度条)

我想问你使用进度条上传多个文件时使用了哪些解决方案?

4 个答案:

答案 0 :(得分:14)

我个人喜欢Valums Ajax Upload


更新:

根据评论部分的要求,这是一个如何与ASP.NET MVC一起使用的示例。

控制器:

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

    [HttpPost]
    public ActionResult Upload(string qqFile)
    {
        // The upload action will be called by the client control
        // for each file that was selected by the user for upload

        var path = Server.MapPath("~/App_Data");
        var file = Path.Combine(path, qqFile);
        using (var output = System.IO.File.Create(file))
        {
            Request.InputStream.CopyTo(output);
        }
        return Json(new { success = true });
    }
}

查看(~/Views/Home/Index.cshtml):

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Ajax Upload demo with ASP.NET MVC</title>
    <link href="@Url.Content("~/Content/fileuploader.css")" rel="stylesheet" type="text/css" />
</head>
<body>
    <div id="file-uploader">       
        <noscript>          
            <p>Please enable JavaScript to use file uploader.</p>
            <!-- or put a simple form for upload here -->
        </noscript>         
    </div>

    <script src="@Url.Content("~/Scripts/fileuploader.js")" type="text/javascript"></script>
    <script type="text/javascript">
        var uploader = new qq.FileUploader({
            element: document.getElementById('file-uploader'),
            action: '@Url.Action("Upload", "Home")'
        });    
    </script>
</body>
</html>

答案 1 :(得分:3)

尝试UploadifyPLupload,可以针对不同语言和运行时自定义这两个

答案 2 :(得分:1)

另一个“我个人喜欢”:Telerik Upload。我们在目前的产品中使用它。它专为ASP.NET MVC设计。

答案 3 :(得分:0)

这个答案很棒但你应该考虑查看这篇文章的IE问题, 并查看@Shane Km的答案。

here