解决asp.net在Windows CE IE浏览器上的上传问题
2009-02-20 12:30
225 查看
最近做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:
[code]
<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:
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:
[code]
<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个字符。
相关文章推荐
- 如何解决ASP.NET中的文件上传大小限制的问题
- 解决ASP.NET Core Mvc文件上传限制问题实例
- 解决FCKeditor For asp.net 上传图片时中文乱码问题
- ASP.NET解决上传大文件问题的方法
- Asp.Net超大文件上传问题解决
- 解决asp.net 以及MVC中上传文件大小限制的问题
- 解决ASP.NET Core Mvc文件上传限制问题
- Asp.Net超大文件上传问题解决
- asp.net ueditor 图片上传路径问题解决
- 如何解决Asp.Net中不能上传压缩文件的问题
- 给网站增加解压缩功能,解决上传速度慢或者不支持FTP的问题(要求支持asp.net和SharpZip)
- asp.net 页面上传服务器后 丢session 问题解决【转帖】
- Asp.net上传出现“超过了最大请求长度”的问题解决方法
- 解决 [Asp.net]Uploadify上传大文件 报Http error 404 问题
- asp.net实现ftp上传代码(解决大文件上传问题)
- 设置webconfig 解决asp.net上传文件过大问题
- Asp.net uploadify上传出现“超过了最大请求长度”的问题解决方法
- 怎样解决asp.net.mvc上传附件超过长度问题?
- FCKEditor 2.6.3 ASP.NET 图片上传 停留在进度条问题解决
- 解决Godaddy主机asp.net无法上传文件的问题