Where___ 2015-11-19 06:44 采纳率: 0%
浏览 1874

我这样做asp.net异步文件上传进度条

前台两个请求
 1.上传文件的请求
 2.获取上传进度的请求

1.

       $("#ufrm").ajaxSubmit({
                    url: "ReceivFile.ashx",
                    type: "post",
                    success: function (data) {
                                        ...

2.

  $.ajax({
                    type: "post",
                    url: "Filepro.aspx",
                    data: {
                        type: "gp"
                    },
                    success: function (data) {
                                        ...

后台两个处理:
1.接收文件的处理

       int readcount = 0;
                    int tcount = 0;
                    tcount = files.ContentLength;
                    byte[] buffer=new byte[10];
                    System.IO.FileStream fs= System.IO.File.Create(context.Server.MapPath(pic));
                    HttpContext.Current.Session["fp"] = "1";
                    while ((readcount=stream.Read(buffer,0,10))>0)
                    {
                        fs.Write(buffer, 0, readcount);
                        HttpContext.Current.Session["fp"] = fs.Length + "/" + tcount;
                    }

2.返回进度

   if (tag.Equals("gp"))
        {
            if (Session["fp"] != null)
            {
                Response.Write(Session["fp"].ToString());
                Response.End();
            }
            else
            {
                Response.Write("NULL");
                Response.End();
            }

        }

服务器接收文件的过程中把上传的进度存到session中 前台请求上传进度的时候 服务器从这个session里获取值发送给前台 前台再显示出来
我这样去实现上传的进度显示可以吗?
现在的问题是 返回的进度总是NULL 像是被接收文件那个线程给独占了一样  应该怎样去改进 求指教
我查了这两个请求(上传文件请求和获取进度请求)的sessionid是一样的!

  • 写回答

1条回答 默认 最新

  • Go 旅城通票 2015-11-19 07:29
    关注

    因为用了session,其他所有请求都会被挂起,显示个loading...图片就好了,上传完毕隐藏起来
    asp.net/asp网站浏览器打开一个长时间运行的页面同时打开其他页面为什么被挂起

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配