2015-11-16 98 views
0

我正在使用JQuery驗證插件。正如我發現的那樣,我無法在IE8/IE9上使用FileData。問題是,由於我無法控制的一些原因,我也不能使用Flash的IFrame來處理我的文件。文件上傳 - 處理IE8/IE9

此刻,我submitHandler就像下面

submitHandler: function (form) { 
    if(window.FormData === undefined) { 
     alert("UNDEFINED"); 
    } else { 
     formData = new FormData(), 
      params  = $(form).serializeArray(), 
      fileOne = $(form).find('[name="fileOne"]')[0].files, 
      fileTwo = $(form).find('[name="fileTwo"]')[0].files; 

     if(fileOne.length != 0) { 
      $.each(fileOne, function(i, file) { 
       formData.append('fileOne-' + i, file); 
      }); 
     } 

     if(fileTwo.length != 0) { 
      $.each(fileTwo, function(i, file) { 
       formData.append('fileTwo-' + i, file); 
      }); 
     } 

     $.each(params, function(i, val) { 
      formData.append(val.name, val.value); 
     }); 

     $.ajax({ 
      type: "POST", 
      url: "php/process.php", 
      dataType: "json", 
      data: formData, 
      mimeType: "multipart/form-data", 
      contentType: false, 
      processData: false 
     }).done(function (response) { 

      }); 
     return false; 
    } 
}, 

所以,它的工作原理是正常的,但如果它不支持FORMDATA,此刻我有它提醒未定義。然而,我需要做的是在其他表單字段上進行驗證,因爲這似乎適用於IE8,但忽略與上載文件有關的任何操作。那麼我怎樣才能調用我的PHP腳本IE8/IE9?

任何意見讚賞。

感謝

回答

0

排除文件驗證,如果FORMDATA對象不存在

if (typeof formData == "undefined") { 
    //don't do file validation 
} 
+0

然後,我只是觸發提交?此外,是否有可能在這裏做正常的驗證,並仍然在PHP中獲取文件?當我嘗試時,正常的驗證工作,但文件不傳遞給PHP。 –

+0

你最好只在 madalinivascu

+0

對不起,你的意思是? –