Проблема с отправкой содержимого файла в Internet Explorer - PullRequest
0 голосов
/ 28 сентября 2010

Я отправляю свой файл через jquery, используя плагин Jform.js, и он работает в Firefox, но когда я пробую его на IE8, файл должным образом назначается, но элемент управления загрузкой файла скрывается и, более того, когда я комментирую условие IE, контроль загрузки файла не выполняется.получить скрыть, но когда я проверяю Request.Files [0] .ContentLength в моем контроллере, он имеет значение 0.Это мой код, и что я могу делать не так?Я использую Asp.net MVC и 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) {    
});

Ответы [ 2 ]

2 голосов
/ 28 сентября 2010

Что такое бред до .ajaxSubmit?Это похоже на код конца 90-х.Я бы порекомендовал вам просто использовать jQuery и не беспокоиться о кросс-браузерных проблемах:

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

Примечание: жестко закодированное действие формы выглядит некрасиво.Вам следует подумать об использовании HTML-помощников для генерации URL.

0 голосов
/ 02 октября 2010

Решение простое, я просто добавляю этот элемент управления просмотра, когда он отвечает обратно от функции ajaxsubmit, и код выглядит следующим образом

...