目前我们有这个上传文件的代码
<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个用户使用这个应用程序。
请建议我们还可以用什么来解决这个问题。我们必须要有这些支票。
发布于 2012-04-12 16:58:34
您可以在服务器端运行检查。
发布于 2012-04-12 17:48:10
将HTML5用于IE9。
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;
};https://stackoverflow.com/questions/10120278
复制相似问题