2012-04-12 42 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; 
}; 
相關問題