最近正在学习ASP.net2.0揭秘(卷一),发现其中有一段使用FileUpload控件的代码调不出来(P124,代码清单4-2 FileUploadDatabase.aspx):这个控件的HasFile属性永远为false,不管有没有通过“浏览”选中文件!所以一旦在事件处理程序中先用其"HasFile"属性判断是否选择到了文件时,程序直接跳过。大小从几十个K到2~3M的文件我都试过,结果一样。但是其"FileName"属性是有效的,反映了真实的操作。所以如果绕开了对"HasFile"属性的判断直接操作,结果是正常的。
在msdn中对于FileUpload控件的使用推荐预先使用"HasFile"属性来预先屏蔽掉未选择文件操作,可见这个属性是非常重要的。在各个论坛上也查了一下,有人提出过这个问题,但没有人有解决。现在将这段代码贴出来,在附件里,请专家们帮忙看看。我的操作系统是XP_SP3,调试环境是VS2005,使用了sql Server Express 2005数据库。
------解决方案--------------------------------------------------------
哈哈,我敢断定是在page_load里面检查了hasfile!
你把检查hasfile的语句放在button事件里面保证OK。
把你的代码贴上来。