BootStrap Progressbar 实现大文件上传的进度条的实例代码

网友投稿 294 2023-07-13


BootStrap Progressbar 实现大文件上传的进度条的实例代码

1.首先实现大文件上传,如果是几兆或者几十兆的文件就用基本的上传方式就可以了,但是如果是大文件上传的话最好是用分片上传的方式。我这里主要是使用在客户端进行分片读取到服务器段,然后保存,到了服务器段读取完了之后将分片数据进行组合。

2.前端代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UploadTest2.aspx.cs" Inherits="Html5UploadTest.UploadTest2" %>

<%--

--%>

等待

3. 后台一般处理程序如下:

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Web;

namespace Html5UploadTest

{

///

/// Summary description for Upload

///

public class Upload : IHttpHandler

{

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

try

{

//从Request中取参数,注意上传的文件在Requst.Files中

string name = context.Request["name"];

int total = Convert.ToInt32(context.Request["total"]);

int index = Convert.ToInt32(context.Request["index"]);

var data = context.Request.Files["data"];

//保存一个分片到磁盘上

string dir = context.Request.MapPath("~/temp");

string file = Path.Combine(dir, name + "_" + index);

data.SaveAs(file);

//如果已经是最后一个分片,组合

//当然你也可以用其它方法比如接收每个分片时直接写到最终文件的相应位置上,但要控制好并发防止文件锁冲突

if (index == total)

{

file = Path.Combine(dir, name);

//byte[] bytes = null;

using (FileStream fs = new FileStream(file, FileMode.OpenOrCreate))

{

for (int i = 1; i <= total; ++i)

{

string part = Path.Combine(dir, name + "_" + i);

//bytes = System.IO.File.ReadAllBytes(part);

//fs.Write(bytes, 0, bytes.Length);

//bytes = null;

System.IO.File.Delete(part);

fs.Close();

}

}

}

}

catch (Exception)

{

throw;

}

//返回是否成功,此处做了简化处理

//return Json(new { Error = 0 });

}

public bool IsReusable

{

get

{

return false;

}

}

}

}

4.当然了后台还需要一些异常处理或者断电续传的工作要做,待续。。。

以上所述是给大家介绍的BootStrap Progressbar 实现大文件上传的进度条的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java中的字符编码问题处理心得总结
下一篇:java实现倾斜水印铺满整张图
相关文章

 发表评论

暂时没有评论,来抢沙发吧~