Javascript 是否可以在客户端将进度条链接到saveAs()的进度?

Javascript 是否可以在客户端将进度条链接到saveAs()的进度?,javascript,c#,asp.net,asp.net-mvc,razor,Javascript,C#,Asp.net,Asp.net Mvc,Razor,我有一个上传任何类型文件的控制器。它的浓缩版本是 [HttpPost] public ActionResult Index (HttpPostedFileBase file, string selectedOrgName, string selectedCatName, string previouslyUploadedFilesJSON = null) { // ...... bunch of stuff try

我有一个上传任何类型文件的控制器。它的浓缩版本是

    [HttpPost]
    public ActionResult Index (HttpPostedFileBase file, string selectedOrgName, string selectedCatName, string previouslyUploadedFilesJSON = null)
    {

           // ...... bunch of stuff 

            try
            {
                file.SaveAs(newFileServerPathAndName); // Saves file with new file name in assets folder
            }
            catch
            {
                throw new Exception("Error when trying to save file to Assets folder.");
            }

       // ... bunch of other stuff

        return View();

    }
模型是这样的

@using (Html.BeginForm("Index",
                        "FileUpload",
                        FormMethod.Post,
                        new { enctype = "multipart/form-data", @id ="upload-file-form"}))
{
<div>
        <label for="file">Upload File:</label>
        <input type="file" name="file" id="file" /><br>
        <input type="submit" value="Upload" /><img class="loading-icon hidden" src="/ClientPortal/images/loadinggif.gif"/>
        <input type="hidden" name="selectedOrgName" class="selectedOrgInput" />
        <input type="hidden" name="selectedCatName" id="selectedCatInput"/>
        <input type="hidden" name="previouslyUploadedFilesJSON" value="@ViewBag.uploadedFilesJSON" />
        <br><br>
</div>
}

当上传文件时,必须有某种方式在客户端点击该号码,或者必须有其他方式使用控制器

最简单的解决方案是在浏览器中执行此操作,因为它显然知道发送了多少数据。在上传完成之前,不会调用控制器,因此无法调用,即使服务器端有数据,也必须解决如何将数据返回浏览器的问题


jQuery对此有一些支持,例如,您应该查看SignalR。我们刚刚在MVC应用程序中实现了一个用于文件上传的进度条,效果非常好。它很容易实现,网上有无数的教程和示例,将向您展示如何将其连接起来

我愿意打赌谷歌不会使用HttpPostedFileBase;-)。我猜他们在用AJAX?退房。这里有一个好的。。。您想报告saveAs的进度还是文件上传的进度?@bmm6o文件上传的进度
Uploading (31%)