2012-04-12 82 views
1

目前,我们有这样的代码上传文件文件上传HTML类型=文件中的JSP和上传之前在JavaScript执行一些检查...

<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和我们使用ActivexControl,而无需修改安全设置或注册表IE9安全性不允许。我们无法这样做,因为我们有5000个这个应用程序的用户。

请提出我们可以使用什么来解决这个问题。我们必须进行这些检查...

回答

0

您可以运行检查服务器端。

+0

但我就必须让先上传文件。如果有什么不被支持用户上传的文件...我不知道,如果它是一个好主意 – VJV 2012-04-12 09:00:50

+0

只要带宽不一个问题,它不会有任何伤害。您可以执行所有的检查服务器端,如果没有检出,则不会保存上传的文件。如果不成功,您可以给用户一条消息。我不认为你可以检查例如与JavaScript的文件大小。 – Tom 2012-04-12 09:17:05

0

对于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; 
};