我需要实现下一页:
用户点击按钮上传文件,选择文件并将其上传到服务器上。上传文件后将由转换器处理。转换器可以返回转换百分比。如何在页面上实现连续进度条(进度=上传进度+转换进度)?
我正在使用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上传库?
答案 0 :(得分:4)
您必须使用某种Real-Time
连接或Streaming
来执行此操作。
1)使用 SignalR ,您可以创建一个Hub
来向客户证明进度,易于实施和强大。
2)您可以针对PushStreamContent
调整此示例,以便在转换时发送进度:
答案 1 :(得分:0)
您可以根据需要设置缓冲区大小。但是,我想说一次上传8kb的文件数据。同时以异步方式启动流转换过程。但是,为了顺利进展,您想上传哪种文件?