Problema contenuto del file della presentazione in Internet Explorer
-
26-09-2019 - |
Domanda
Im presentando il mio file tramite jQuery utilizzando Jform.js plug-in e il suo funzionamento in Firefox, ma quando provo in archivio IE8 correttamente sottopongono ma controllo di caricamento file viene nascosto e in seguito di più quando io commento condizione IE quindi per la squadra di controllo di caricamento di file ottenere nascondere ma quando controllo Request.Files [0] .ContentLength nel mio controller esso ha valore 0. Questo è il mio codice e quello che può essere im facendo male? Im con Asp.net MVC e jQuery-1.4.2
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) {
});
Soluzione 2
La soluzione è semplice ho solo aggiungere che il controllo browse quando risposta di ritorno da ajaxsubmit funzione e il codice è il seguente
$(myform).ajaxSubmit({ success: function (responseText) {
if (document.all) {//IE
imageLoadParent.appendChild(myform.firstChild);
}
else//FF
{
document.body.removeChild(myform);
}
Altri suggerimenti
Qual è il delirio, prima .ajaxSubmit
? Sembra che il codice a partire dalla fine degli anni '90. Suggerirei di utilizzare semplicemente jQuery e non preoccuparsi di problemi di cross browser:
$('form')
.attr('action', '/Media/AjaxSubmit')
.attr('method', 'post')
.attr('enctype', 'multipart/form-data')
.hide()
.append($('#' + fileId).clone())
.ajaxSubmit({
success: function(responseText) {
// ...
}
})
.appendTo('body');
Nota: l'azione modulo hardcoded sembra brutto. Si dovrebbe considerare l'utilizzo di aiutanti HTML per generare gli URL.