当前位置:编程学习 > C#/ASP.NET >>

请教文件上传问题

请教一个简单的问题,问题虽然我用其他验证方法解决了
但是起初我的一个思路不正确让我找不到原因

用linkbutton上传文件的时候,我并没有选择要上传的文件而是直接点上传
结果出错 在这行file.SaveAs(path);
当我使用
 if(this.Request.Files.Count==0)的时候
并没有解决错误
快速监视的结果是,我虽然没选择文件但是this.Request.Files.Count==1的 不解!

原程序代码如下,已经解决了问题,但是上面的问题还是不了解为什么

  private void UpLoadImage()
    {
       #region 问题的解决方法1  为什么不成功
       if(this.Request.Files.Count == 0)
         return; 
       #endregion     
       //获取客户端上传的文件集合
        HttpFileCollection fis = this.Request.Files;
        for (int i = 0; i < fis.Count; i++)
        {
            
            HttpPostedFile file = fis[i];
            //上传文件的完整名
              #region 问题的解决方法2 
            if (file.FileName.Equals(""))
            {
                return;
            }  
             #endregion        
           string fullname = file.FileName;

            string filename = System.IO.Path.GetFileName(fullname);
            string path = System.IO.Path.Combine((this.MapPath("~/Images")), filename);
            //保存文件
            file.SaveAs(path);
        }
            ShowImage();
          
    }
--------------------编程问答-------------------- 不好意思,我也不会... --------------------编程问答-------------------- if (FileUpload1.HasFile)
{}
else
{
    error
} --------------------编程问答--------------------  //多附件上传
                for (int i = 0; i < fc.Count; i++)
                {
                    if (fc[i].FileName != "")
                    {
                        string filePhysicalPath = "";
                        try
                        {
                            HttpPostedFile hPostedFile = fc[i];
                            int Filelong = hPostedFile.ContentLength;
                            if (Filelong > Convert.ToInt32(ConfigurationManager.AppSettings["FileZize"].ToString()))
                            {
                                Response.Write("<script>alert('" + "文件过大,上传失败!" + "');</script>");
                                return;
                            }
                            string RandomString = Convert.ToString(Guid.NewGuid());
                            string TrueName = Path.GetFileName(fc[i].FileName);
                            string ExtendName = TrueName.Substring(TrueName.LastIndexOf("."));
                            string RandomName = RandomString + ExtendName;
                            filePhysicalPath = Server.MapPath("~/UpLoad/DepartmentWork/" + RandomName);
                            if (!Directory.Exists(filePhysicalPath))
                            {
                                Directory.CreateDirectory(Server.MapPath("~/UpLoad/DepartmentWork/"));
                            }
                            fc[i].SaveAs(filePhysicalPath);

                            db.AddAttach(RandomName, AddID, TrueName);
                            log.AddLog("添加", "", "信息标题为:《" + txtname.Text + "》的《" + TrueName + "》附件");
                        }
                        catch
                        {
                            Response.Write("<script language=javascript>alert('上传文件出错!');</script>");
                        }
                    }
                }
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,