1

我需要实现下一页:

用户单击按钮上传文件,选择文件并将其上传到服务器。上传文件后将由转换器处理。转换器可以返回转换百分比。如何实现页面上的连续进度条(进度=上传进度+转换进度)?

我正在使用 PlUpload - 这个工具可以返回上传文件到服务器的百分比,但我不能覆盖返回百分比。

我的上传操作:

   public ActionResult ConferenceAttachment(int? chunk, string name, Identity cid)
    {
        var fileUpload = Request.Files[0];

        var tempfolder = Path.GetTempFileName().Replace('.', '-');
        Directory.CreateDirectory(tempfolder);
        var fn = Path.Combine(tempfolder, name);

        chunk = chunk ?? 0;
        using (var fs = new FileStream(fn, chunk == 0 ? FileMode.Create : FileMode.Append))
        {
            var buffer = new byte[fileUpload.InputStream.Length];
            fileUpload.InputStream.Read(buffer, 0, buffer.Length);
            fs.Write(buffer, 0, buffer.Length);
        }

        // CONVERTING ....

        return Content("OK", "text/plain");
    }

哪种架构解决方案可以解决我的问题?或者哪个JS上传库?

4

2 回答 2

4

您必须使用某种Real-Time连接或 aStreaming来执行此操作。

1)使用SignalR,您可以创建一个Hub通知客户端进度,易于实现且功能强大。

了解 ASP.NET SignalR

2)您可以在转换时调整此示例PushStreamContent以发送进度:

使用 ASP.NET Web API 异步流式传输视频

于 2013-10-23T12:42:24.450 回答
0

您可以根据需要设置缓冲区大小。但是,我会说一次上传 8kb 的文件数据,同时异步启动流转换过程。但是,为了再次顺利进行,您要上传什么样的文件?

于 2013-10-23T13:17:40.100 回答