0
    // triggering input:file click via <a> tag click

    $('.upload_company_logo').on('click', function(e){
        e.preventDefault();
        $('#addCompanyLogo input:file').click();
    });

    // main submit event

    $('#addCompanyLogo').submit(function() {
        $(this).unbind('submit').ajaxSubmit({    
            iframe: true,
            url : _ROOT + 'users/upload_company_logo',
            success: function (responseText, statusText) {   
                var response = $.parseJSON(responseText);
                if(statusText == 'success') {
                    var response = $.parseJSON(responseText);
                    $('.the_company_logo').attr('src', _ROOT + 'image/company_logo/' + response.tmp_name + '?t=' + (new Date()).getTime())
                } 
            }                         
        });
        return false;
    });

    // submitting form
    $('#addCompanyLogo input:file').on('change', function() {
       $('#addCompanyLogo').submit();
    });

我尝试了上面通过 Ajax 上传图像的代码,它在所有浏览器中都可以正常工作,除了 IE,在 IE 中它显示错误Access is Denied

值得一提的是,这里的表单form#addCompanyLogo是隐藏的,我通过点击标签触发了input:file更改事件。<a>

4

1 回答 1

0

IE 不支持通过 onchange 提交带有文件上传的表单。这是一个“安全”功能。只需更改为直接点击触发即可:)

于 2013-12-11T06:44:53.893 回答