在IE6中,file标签可以输入文件路径。但是在firefox中,浏览器则不允许输入。浏览器这么做的原因可能是为了减少出错的可能,IE则充分相信用户可以把握自己的输入信息。但是事实证明,这种输入错误的几率非常大,特别是在BS软件结构成为企业级应用软件的主流架构的今天。笔者就遇到这样的问题,使用frm.submit()提交时,如果用户输入了不合法的文件路径。该函数会抛出异常,导致前台代码运行错误。
尝试使用文件名校验,和判断文件是否存在等办法来校验,都未达到理想的效果。
偶然的想法,使用try catch来发出提示信息。代码如下
<html>
<head>
<script>
var context_path = '/learn';
function on_file_selected(){
var frm = document.getElementById('frmUpload');
if(!frm){
return ;
}
var fileElm = document.getElementById('fileInput');
if(!checkFileFullName(fileElm.value)){
alert('文件不存在!');
return ;
}
var url = context_path + '/file/upload.jsp?';
frm.action = url;
try{
frm.submit();
}catch(e){
alert('上传文件出错!');
}
}
function checkFileFullName(path){
return true;
}
</script>
</head>
<body>
<form id="frmUpload" method="post" name="frmUpload" action="">
<input type="file" name="file" onchange="on_file_selected()" id="fileInput"
style="font-size:13px;width:200px;" />
</form>
</body>
</html>
----------------------------------------------
有读到此信息的哥们,不妨讨论一下更合理的解决办法。
分享到:
相关推荐
写下试用教程: 1.准备一个web项目,到sitemesh官方网站下载sitemesh包与tld文件 http://www.opensymphony.com/sitemesh/ 2.把sitemesh-2.3.jar加入classpath中,把tld放到WebContent/WEB-INF/tld/下 3.更改web....
### FCKEditor试用指南 #### 1. FCKEditor 的下载及介绍 FCKEditor 是一款基于JavaScript的富文本编辑器,它提供了强大的编辑功能,适用于多种Web开发环境。这款编辑器支持自定义工具栏、多语言环境,并且能够很好...
1. **前端交互**:在用户界面,HTML表单`<form>`元素用于接收用户选择的文件,通过`<input type="file">`标签创建一个文件选择器。表单通常使用`enctype="multipart/form-data"`指定编码类型,以便处理二进制数据。 ...
在“File”菜单下选择“Save Project”,并指定一个合适的保存位置,例如在Tomcat的webapps目录下,这样可以直接发布你的应用。然后,你可以开始构建应用程序的结构。 教程中提到的第一步是创建一个Viewport视图,...
标题中的“dosntfs5,dos小工具”指的是在DOS环境下可以使用的工具,用于管理和操作NTFS(New Technology File System)分区。NTFS是Windows操作系统中的一种高级文件系统,通常用于存储大量的数据并提供高级安全性...
- **Text/MultilineText/IntegerNumber/DecimalNum/HTML/Monetary/Date/Date&Time/Checkbox/Selection/File/One2many/Many2one/Many2many/Image/Tags/Priority/RelatedField/ExistingFields**:这些是不同类型的...