foreach 无法将类型为“System.String”的对象强制转换为类型“System.Web.HttpPostedFile”

  asp.net不能使用foreach遍历HttpFileCollection对象,要不有些时候会报无法将类型为“System.String”的对象强制转换为类型“System.Web.HttpPostedFile”。示例代码如下

    public void ProcessRequest(HttpContext context)
    {
        if (context.Request.Files.Count > 0)
        {
            foreach (HttpPostedFile f in context.Request.Files)
                if (f.FileName != "")
                {
                    f.SaveAs(context.Server.MapPath("upload/" + f.FileName));
                }
            context.Response.Write(1);
        }
        else context.Response.Write("没有文件上传!");
    }

foreach 无法将类型为“System.String”的对象强制转换为类型“System.Web.HttpPostedFile”

可以使用for语句来实现遍历。

    public void ProcessRequest(HttpContext context)
    {
        if (context.Request.Files.Count > 0)
        {
            for (int i = 0, j = context.Request.Files.Count; i < j; i++)
            {
                HttpPostedFile f = context.Request.Files[i];
                f.SaveAs(context.Server.MapPath("upload/" + f.FileName));
            }
            context.Response.Write(1);
        }
        else context.Response.Write("没有文件上传!");
    }

csdn和stackoverflow.com都有介绍

Foreach的使用场合

Cannot implicitly convert type 'System.Web.HttpPostedFile' to 'System.Web.HttpPostedFileBase'

加支付宝好友偷能量挖...


原创文章,转载请注明出处:foreach 无法将类型为“System.String”的对象强制转换为类型“System.Web.HttpPostedFile”

评论(0)Web开发网
阅读(1675)喜欢(1)Asp.Net/C#/WCF