在JSP中使用HTML type=file上传文件,并在上传前在javascript中执行一些检查
File upload using HTML type=file in JSP and executing some checks in javascript before upload...
目前我们有这个代码来上传文件
<input id='fileBrowse' type='file' style="width:187px;height:20px" class='fileBrowse' onchange="onBrowseFile( this );" />
执行一些检查的 JavaScript 函数如下所示:
function onBrowseFile( fb ) {
var myFSO = new ActiveXObject("Scripting.FileSystemObject");
var thefile = myFSO.getFile(fb.value);
if( (thefile.size / 1000000) > maxfilesize) {
alert( "The size of the files you have tried to drag and drop exceed the maximum allowed. Please drag no more than "+maxfilesize+" MB at a time." );
return;
}
if( fb.value.indexOf( ".exe" ) > -1 ||
fb.value.indexOf( ".asp" ) > -1 ||
fb.value.indexOf( ".aspx" ) > -1 ||
fb.value.indexOf( ".cab" ) > -1 ||
fb.value.indexOf( ".com" ) > -1 ||
fb.value.indexOf( ".dll" ) > -1 ||
fb.value.indexOf( ".java" ) > -1) {
alert( "The import of one or more files type are not permitted" );
return;
}
document.getElementById( "txtFilePath" ).value = fb.value;
}
现在的问题是我们现在使用 IE9 和 IE9 安全性不允许我们在不修改安全设置或注册表的情况下使用 ActivexControl。我们不能这样做,因为我们有5000个用户。
请建议我们还可以使用什么来解决这个问题。我们必须进行这些检查...
您可以运行检查服务器端。
对 IE9 使用 HTML 5。
var upload = document.getElementById('fileBrowse');
upload.onchange = function (e) {
e.preventDefault();
var file = upload.files[0];
if( ( file.fileSize) > (2 * 1024*1024) ) {
alert( "The size of the files you have tried to drag and drop exceed the maximum allowed. Please drag no more than 1 MB at a time." );
return;
}
if( file.name.indexOf( ".exe" ) > -1 ||
file.name.indexOf( ".asp" ) > -1 ||
file.name.indexOf( ".aspx" ) > -1 ||
file.name.indexOf( ".cab" ) > -1 ||
file.name.indexOf( ".com" ) > -1 ||
file.name.indexOf( ".dll" ) > -1 ||
file.name.indexOf( ".java" ) > -1 ) {
alert( "The import of one or more files type are not permitted" );
return;
}
return false;
};
相关文章:
- JavaScript执行暂时挂起页面
- 页面在我的javascript执行后重新加载,我不希望它这样做
- 如何在使用jQuery.html()时防止javascript执行
- 如何打开一个新窗口或选项卡,并将其提供给javascript执行
- 如何在Ajax加载新内容时停止JavaScript执行
- 如何使用xpath和Javascript执行器打印文本
- cakehp2.x用javascript执行控制器
- 如何在不使用javascript执行的情况下为函数分配参数
- Javascript执行顺序错误
- Javascript执行顺序和回调
- 如何在Javascript执行后防止浏览器锁定
- JavaScript执行从函数声明开始,而不是从$(document).ready()开始
- 在asp.net页面中显示javascript执行过程中的加载图标
- 基于浏览器窗口大小的条件 JavaScript 执行
- 使用 JavaScript 执行一行 PHP(不包括 PHP 文件)
- Dom 解析和 JavaScript 执行
- 为什么通过javascript执行php可以工作
- JavaScript执行路径
- 从javaScript执行服务器端代码
- 如何使用Javascript执行客户端web抓取