2010-09-28 5 views
0

Im soumettre mon fichier par jquery en utilisant Jform.js plugin et son fonctionnement dans Firefox mais quand je l'essaie sur le fichier IE8 correctement sumbitted mais le contrôle de téléchargement de fichiers devient caché et plus encore quand je commente IE condition alors le contrôle de téléchargement de fichier ne se cache pas mais quand je vérifie Request.Files [0] .ContentLength dans mon contrôleur il a la valeur 0. Ceci est mon code et qu'est-ce que je peux mal faire? Im en utilisant Asp.net MVC et jquery-1.4.2Problème de soumission de contenu de fichier dans Internet Explorer

 var myform = document.createElement("form");  
     myform.style.display = "none" 
     myform.action = "/Media/AjaxSubmit"; 
     myform.enctype = "multipart/form-data"; 
     myform.method = "post"; 
     var imageLoad; 
     var imageLoadParent; 
     if (document.all) {//IE 
      imageLoad = document.getElementById(fileId); 
      imageLoadParent = document.getElementById(fileId).parentNode; 
      myform.appendChild(imageLoad); 
      document.body.appendChild(myform); 
     } 
     else {//FF   
       imageLoad = document.getElementById(fileId).cloneNode(true); 
       myform.appendChild(imageLoad); 
       document.body.appendChild(myform);   
     }  
     $(myform).ajaxSubmit({ success: function (responseText) {  
}); 

Répondre

0

solution est simple j'ajouter que le contrôle de navigation quand il réponse en retour de ajaxsubmit fonction et le code est le suivant

  $(myform).ajaxSubmit({ success: function (responseText) { 
      if (document.all) {//IE 
       imageLoadParent.appendChild(myform.firstChild); 
      } 
      else//FF      
      { 
       document.body.removeChild(myform); 
      } 
2

Quel est le délire avant .ajaxSubmit? Il ressemble à du code de la fin des années 90. Je vous recommande d'utiliser simplement jQuery et vous inquiétez pas sur les questions transversales navigateur:

$('form') 
    .attr('action', '/Media/AjaxSubmit') 
    .attr('method', 'post') 
    .attr('enctype', 'multipart/form-data') 
    .hide() 
    .append($('#' + fileId).clone()) 
    .ajaxSubmit({ 
     success: function(responseText) { 
      // ... 
     } 
    }) 
    .appendTo('body'); 

Remarque: l'action sous forme hardcoded semble laid. Vous devriez envisager d'utiliser des aides HTML pour générer des URL.

+0

Merci Darin, mais la question est reste quand je supprimer le fichier de la fonction clone() soumet correctement mais le fichier uploader se cache et si j'utilise le même code que celui que vous avez fourni sur AjaxSubmit, j'ai reçu 0 dans Request.Files [0] .ContentLength –

Questions connexes