解决asp.net在Windows CE IE浏览器上的上传问题

<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

 

最近做asp.net网站在手机浏览器上的时候,发现一个比较古怪的问题,就是在windows CE的IE浏览器上上传文件读取不到文件或者浏览器不让上传,困扰了好几天,最终解决,得到一些经验,希望能够给遇到和我一样问题的朋友一些帮助。

1.上传页面不能使用模板 - Master Page, 如果上传组件在Master Page 中,服务端得不到上传的文件, FileUpload.HasFile始终为false.

2.确保上传组件在一个单独的asp.net页中,如果上传的文件名包括后缀超过15个字符,也会上传失败。

3.如果上传组件的ID值超过15个字符,也不会上传成功, 例如 <asp:FileUpload ID="txtAttachment" runat="server" /> 没问题,<asp:FileUpload ID="txtAttachmentFile" runat="server" />就不行了。

在PC机上的所有浏览器和BlackBerry上不受以上3个条件限制,iPhone没有测试,对Windows CE上的IE的这三个问题,比较古怪,不知道是不是Bug。

针对Widows CE上的IE解决方案:

1.上传组件一定要在单独的页面中。

2.利用javascript控制上传文件名的长度。

ASP.NET Web Form:

<script type="text/javascript">
function ValidateFile(ctlidFileUpload) {
   var fileUpload = document.getElementById(ctlidFileUpload);
   if (fileUpload) {
      var sFilename = fileUpload.value;
      var nLastSlash = sFilename.lastIndexOf('//');
      if (nLastSlash >= 0) {
         sFilename = sFilename.substring(nLastSlash + 1, sFilename.length);
         if (sFilename.length > 15) {
            alert("Internet Explorer Mobile requires that the document's filename (including extension) be 15 characters or less. Please rename this file and try again.");
            return false;
         }
      }
   }
   return true;
}
</script>
Code-behind:

protected void Page_Load(object sender, EventArgs e)
{

   if (Request.Browser.IsBrowser("WinCE"))
   {
      btnUpload.OnClientClick = "return ValidateFile('" + fileUpload.ClientID + "')";
   }
}

3.上传组件的ID不要超过15个字符。

<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值