日期:2014-05-18  浏览次数:20705 次

为何FileUpload.HasFile始终为false
代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class upFile_Default : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }
  protected void Button1_Click(object sender, EventArgs e)
  {
  if (FileUpload1.HasFile)  
  {
  TextBox1.Text = FileUpload1.FileName;
  String path = Server.MapPath("~/upfile/");
  Label1.Text = path;
  }
  else
  Label1.Text = FileUpload1.HasFile.ToString();
  }
}

if语句通不过
fileupload1.hasfile始终为false
测试环境vs2005 虚拟机xp sp2 


------解决方案--------------------
把楼主的那个换成这个试下吧:if(fUpload.PostedFile.FileName != null)
------解决方案--------------------
帮顶~~没遇见过这种情况。。。。
------解决方案--------------------
可能是<form>标签里的属性有问题~

请看:
http://blog.csdn.net/IsMe/archive/2008/03/27/2223920.aspx
------解决方案--------------------
你用了ajax吗? UpdatePanel下使用FileUpload可能不兼容哦!
 另外判断 是否选中 最好用HasFile属性(考虑到0字节的文件),FileName属性好像只是检查是否选中了文件(不检查文件字节是否为0)。
------解决方案--------------------

 在 page_load 里加一句


 if (!IsPostback) return;
------解决方案--------------------
调试看看FileName是否为空
------解决方案--------------------
用的是 HTML的 FILE 控件吧, 需要手工在 FORM 上加个 属性, 叫 multipart-....忘了
用 WEBCONTROL 的UPLOAD控件试试, WEB CONTROL 控件会自动加那个属性
------解决方案--------------------