holly.huang 发表于 2015-1-6 21:20:00

【ASP.NET】C1Upload自定义Http处理

<wijmo:C1Upload ID="C1Upload1" runat="server" width="300px"Action="UploadHandler.ashx" />

UploadHandler.ashx
public class UploadHandler : IHttpHandler
    {

      public void ProcessRequest(HttpContext context)
      {
            string sDirectory = HttpContext.Current.Server.MapPath("~/Uploaded");
            if (!Directory.Exists(sDirectory))
            {
                Directory.CreateDirectory(sDirectory);
            }
            var request = context.Request;
            var requestType = request.Headers["Wijmo-RequestType"];
            if (!String.IsNullOrEmpty(requestType) &amp;&amp; requestType == "XMLHttpRequest")
            {
                var fileName = request.Headers["Wijmo-FileName"];
                using (FileStream fs = new FileStream(sDirectory + "\\" + context.Server.UrlDecode(fileName), FileMode.Create))
                {
                  var inputStream = context.Request.InputStream;
                  byte[] bytes = new byte[(int)inputStream.Length];
                  inputStream.Read(bytes, 0, (int)inputStream.Length);
                  fs.Write(bytes, 0, bytes.Length);
                  fs.Close();
                }
            }
            else
            {
                HttpFileCollection oFiles = context.Request.Files;
                if (oFiles != null &amp;&amp; oFiles.Count > 0)
                {
                  for (int i = 0; i < oFiles.Count; i++)
                  {
                        string fileName = oFiles.FileName;
                        int idx = fileName.LastIndexOf("\\");
                        if (idx > -1)
                        {
                            fileName = fileName.Substring(idx + 1);
                        }
                        oFiles.SaveAs(sDirectory + "\\" + fileName);
                  }
                  context.Response.Write("Sucess");
                }
                else
                {
                  context.Response.Write("Fail");
                }
            }
      }

      public bool IsReusable
      {
            get
            {
                return false;
            }
      }
    }

问题描述:UploadHandler.ashx不起任何作用。。。

Alice 发表于 2015-1-7 09:53:00

回复 1楼holly.huang的帖子

看了下你的代码,推测wijmo.wijupload可能比较适合。
你可以看下它的Demo,有示例和代码。
http://wijmo.com/demo/explore/?widget=Upload&amp;sample=Overview

如果对你的需求理解有误,请指出,我们再帮你看看。

holly.huang 发表于 2015-1-7 10:40:00

回复 2楼Alice的帖子

为什么不能直接用C1Upload控件呢?

Alice 发表于 2015-1-7 14:22:00

回复 3楼holly.huang的帖子

你在1楼提到的问题,已经测试重现了。
测试所使用的Demo链接:
http://demo.gcpowertools.com.cn/ComponentOne/ASPNET/ControlExplorer/C1Upload/CustomHandler.aspx
C1Upload使用Action属性没有到指定的http handler 去上传文件。
这个问题我会提交给产品组,如果有任何相关反馈会通知你。

holly.huang 发表于 2015-1-7 15:05:00

回复 4楼Alice的帖子

希望尽快调整这个BUG

Alice 发表于 2015-1-7 17:02:00

回复 5楼holly.huang的帖子

问题已经提交产品组。
很抱歉给你带来使用上的不方便。
同时也谢谢你的反馈。

holly.huang 发表于 2015-1-9 12:34:00

回复 6楼Alice的帖子

后续情况如何?有回复不?

Alice 发表于 2015-1-9 16:34:00

回复 7楼holly.huang的帖子

很抱歉久等了。
这个问题已经提交到BugList,如果确认修复会在下个版本发布,修复后我会通知你。
页: [1]
查看完整版本: 【ASP.NET】C1Upload自定义Http处理