我写了一小段上传文件的测试代码,很简单的,这段代码在我本机及其发布到其余4台机都是正常的,但是其中有台机不正常,报错如下:File1.PostedFile.ContentLength 未将对象应用到对象实例。
代码如下:
private void Button1_Click(object sender, System.EventArgs e)
{
   try
   {
if(File1.PostedFile.ContentLength==0)
{
  Page.RegisterStartupScript("", "<script>alert('请选择你要上传的文件!');</script>");
 return;
}
else
{
   string filename = File1.PostedFile.FileName;
   Page.RegisterStartupScript("", "<script>alert('"+filename+"+文件获取成功!');</script>");
}
   }
   catch(Exception ex)
   {
      Response.Write("Error: " + ex.Message);
   }
}
什么给form加上encType="multipart/form-data"啊,给该网站目录加上ereryone读写权限啊等方法我都试过了,还是不行,不知道到底哪里出了问题,高手们快来帮帮我吧,搞了一天了,还是没搞掂,真的快要疯掉了。

解决方案 »

  1.   

    if(File1.PostedFile.ContentLength==0)
    在做这句之前,是不是应该判断一下
    if (File1.HasFile)
      

  2.   

    protected void Button1_Click(object sender, EventArgs e)
        {
            string fileName = "";
            string filePath = "";
            string fileClass = "";
            
            if (FileUpload1.HasFile)
            {
                fileName = FileUpload1.FileName;
                fileClass = System.IO.Path.GetExtension(fileName);
                filePath = Server.MapPath("images/");
                FileUpload1.SaveAs(filePath + fileName);      
            }
            //string str = "";
            //str += "文件路径:" + filePath + fileName;
            //str += "<br>文件类型:" + fileClass;
            //Label1.Text = str + "<br>";
                }
      

  3.   

    多谢各位的帮忙,我找到原因了,不是程序代码的问题,是因为我们公司自己封装了文件上传的一个dll,该dll的使用会影响官方的上传方法,两者会有冲突。感谢各位,结贴了。
      

  4.   

    Click the link to solve your problem.Good luck!