Problem einreichen Dateiinhalt in Internet Explorer
-
26-09-2019 - |
Frage
Absenden Im meine Datei über jquery unter Verwendung Jform.js Plugin und seine Arbeits in Firefox, aber wenn ich es auf IE8 Datei versuchen richtig sumbitted aber Datei-Upload-Steuerelement wird versteckt und noch mehr, wenn ich IE Zustand Kommentar dann die Datei-Upload-Steuerelement tut erhalten verstecken, aber wenn ich Request.Files überprüfen [0] .ContentLength in meinem Controller es hat 0 Wert. Das ist mein Code und was sein im möglicherweise falsch? Im mit Asp.net MVC und 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) {
});
Lösung 2
Die Lösung ist einfach i fügen Sie einfach, dass die Kontrolle browse, wenn es wieder aus ajaxsubmit Antwort und Code folgt als
$(myform).ajaxSubmit({ success: function (responseText) {
if (document.all) {//IE
imageLoadParent.appendChild(myform.firstChild);
}
else//FF
{
document.body.removeChild(myform);
}
Andere Tipps
Was ist das Delirium vor .ajaxSubmit
? Es sieht aus wie Code aus dem Ende der 90er Jahre. Ich würde Ihnen empfehlen, einfach jQuery zu verwenden und sich keine Sorgen über Cross-Browser-Probleme:
$('form')
.attr('action', '/Media/AjaxSubmit')
.attr('method', 'post')
.attr('enctype', 'multipart/form-data')
.hide()
.append($('#' + fileId).clone())
.ajaxSubmit({
success: function(responseText) {
// ...
}
})
.appendTo('body');
Hinweis: die hartcodierte Form Aktion sieht hässlich aus. Sie sollten mit Hilfe von HTML Helfer betrachten zu Urls generieren.