在普通的web项目中,经常会有文件上传功能,一般情况下都用的是<input type='file'> 标签,虽然比较丑,但是安全性不错。有的公司也会自己开发Applet来实现文件处理等。方法多的是,挑一种最简单的吧。
struts2+spring+ibatis的工程。
<form method="post" enctype="multipart/form-data">
在工程中引入<input type='file'>后。显示的时候,为一个输入框,一个浏览按钮。
在IE中,该输入框是允许输入字符的,如果输入字符,不通过其浏览按钮来选择文件,则在提交表单的时候,IE会提示对象不存在等warning信息,无法提交。
这时,就需要对file进行校验,但是由于无法提交只能于客户端校验,就需要用到ActionXObject
但是需要额外的设置Internet选项中的安全中的受信站点(Internet、本地站点或受信站点中)―自定义安全级别 :设置“对没有标记为安全的ActiveX控件进行初始化和脚本执行”设置为启用;
如果不设置,则会出现“Automation 服务器不能创建对象”
这是一种解决办法,但是如何从源头上解决该问题呢?就是不允许客户直接输入文件,而是必须通过浏览按钮选择。
DHTML中,对于input有isContentEditable( 获取表明用户是否可编辑对象 内容的值)
如果该值为true,则允许编辑输入;如果该值为false,则不允许编辑输入。
input type=file标签只有在ie下有这样的问题,在ff中,不存在。在ff中,在onclick下,其会效果等同于点击浏览按钮,很不错。