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

为什么我获取不到 fileupload控件上传的文件名?
<asp:FileUpload ID="comment_img" runat="server" /> 放在一个用户控件里,用户控件放在一个母版页的子页里。程序采用了URLREWIRTE,所以母版的FORM 换成了 <skm:Form id="Form1" runat="server"> 现在在用户控件了取不到fileupload 控件上传的文件名,为空。该怎么弄呀?


------解决方案--------------------
好像得看看你的代码
------解决方案--------------------
应该是在刷新时,去掉了.
加个
if(!IsPostBack)
{}

调试一下,看看.
------解决方案--------------------
放在母版页面里面 这个comment_img 就变了。在HTML页面右键查看源码就可以看到了。
------解决方案--------------------
控件类型的问题?
添加一个隐藏控件试试
<input id="Hidden1" type="hidden" runat ="server" /> 

先通过js赋值,提交试试
JScript code

<script>
<!--
function Button1_onclick() {
document .getElementById ("Hidden1").value ="123";
}
//-->  
</script>

------解决方案--------------------
这证明是你控件类型的问题
------解决方案--------------------
追踪一下<form enctype="multipart/form-data">
------解决方案--------------------
因为fileupload 和你的另一个text控件是server的控件,取不到值是因为没有把值submit到服务器端;所以当然取不到.在你用了浏览选定了文件后,你是看到文件名了,但服务器端是不知道的这时因为现在还没有postback.同时因为它们是服务端的控件,所以在客户端,你是取不到值的,你可以用右键源文件看看,根本就没有值.

我的方法是在下面加一个sever端的按钮,等他click后在server端很容易拿到filename 的值,所有要做的逻辑处理在此时在server完成.然后用PageMethods的方法,就可以把这个值传回js.(这个楼主应该知道的吧.哈哈,定义一个static string filename;然后定义一个[webmethod],在JS用PageMethods把它取回来就是了)那样你就可以处理了.在onclick(server端)的时候,你只要不用fileupload的SaveAs方法,文件是不会上传的现在.

我用过母板页,做过这样的处理;一直都可以的,这么做.

楼主看看,能work否.

当然,如果在server端还取不到的话,那我怀疑URLREWIRTE的问题了.
------解决方案--------------------
http://topic.csdn.net/u/20081002/09/d0218c36-1348-4cb6-a632-b99c3a5854a9.html
有没有判断hasfile
------解决方案--------------------
13楼说的有道理
------解决方案--------------------
在UpdatePanel里,是取不到的
------解决方案--------------------
在UpdatePanel里,是取不到的,网上也有一些解决方案,都不实用
------解决方案--------------------
楼主用HTML控件上传可以不?
前台:<input type="file" name="File"/>
在后台用HttpFileCollection和HttpPostedFile类
来实现上传...
------解决方案--------------------
把form标签改为<form id="Form1" method="post" encType="multipart/form-data" runat="server">试试?
------解决方案--------------------
那你看看你的母板页里面的form放在哪里了,如果没有,当然就取不到了,因为它都不知道postback 到哪 .最好是先不用母板 ;这样看看有没有问题.这样就可以用排除法,解决问题了.
------解决方案--------------------
探讨
我试过,应该跟母版页没有关系。我觉得是因为URLREWRITE 的问题。我该怎么解决呢?帮帮忙啊!

------解决方案--------------------
楼主,都跟你说了在Ajax的UpdatePanel里是取不到的,你把UpdatePanel删了或把fileupload 和按钮都拖到UpdatePanel外,绝对能取到。。。。。。。。。。。。。

------解决方案--------------------
恭喜楼主了.问题解决了.
------解决方案--------------------
gongxi