javascript - 元素的 FormData 不起作用 - Internet Explorer 10

标签 javascript php jquery internet-explorer form-data

我正在使用 jQuery.ajax 上传文件,并且在 Google Chrome、Mozilla Firefox、Opera 等现代浏览器(Internet Explorer 10 除外)中一切正常。

new FormData($('.uploadForm')[0]) 在 IE10 中不起作用,但如果我只尝试使用这段代码: new FormData($('. uploadForm')) 它有效...看起来它不接受特定索引处的元素或其他元素?我不太明白这一点,这就是我寻求帮助的原因。

此示例对于 IE10 是否存在任何解决方法?

JS:

var form = new FormData($('.uploadForm')[0]);
config.progressBar.progressWidth = 0;
$('.uploadForm .valueBox').fadeOut('slow',function(){
    $(this).addClass('hidden')
    $('.meter').removeClass('hidden').width(config.progressBar.width);
    $.ajax({
        url: '../../uploads/some.php',
        type: 'POST',
        xhr: function() {
            var myXhr = $.ajaxSettings.xhr();
            if(myXhr.upload){
                myXhr.upload.onprogress = progress;
            }
            return myXhr;
        },
        success: function (res) {
            console.log(res)
        },
        data: form,
        cache: false,
        contentType: false,
        processData: false
    });

some.php代码的和平:

foreach($_FILES["file"]["error"] as $key => $value) {
    if ($value == UPLOAD_ERR_OK){

        $name = $_FILES["file"]["name"][$key];

        $arr_files = getimagesize($_FILES["file"]["tmp_name"][$key]); 
        $width = $arr_files[0];
        $height = $arr_files[1];
        $mime = $arr_files['mime'];

        copy($_FILES['file']['tmp_name'][$key], '../uploads/upload/'.$name);

        echo json_encode($_FILES);
    }
}

抛出 IE10 错误:SCRIPT5:访问被拒绝。

最佳答案

不要将文件传递到构造函数中,而是使用append,例如:

var formData = new FormData();
formData.append('file', $('input[type=file]')[0].files[0]);

关于javascript - 元素的 FormData 不起作用 - Internet Explorer 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18785024/

相关文章:

javascript - 通过AJAX响应更改图像的 'src'属性

javascript - 使用javascript获取文本选择,然后修改文本

php - 什么时候应该在动态类型语言中使用 null?

php - 高语 : create a function that accept an interface (I came from PHP)

jQuery .css 不改变元素 css

javascript - 使用NodeJS(公共(public)应用程序)时如何在shopify中获取当前商店?

Javascript:函数不会被触发

php - 查询对mysql中包含逗号分隔值的列进行排序

javascript - jquery中从json数组中分割json数据

jquery - Angularjs 1.4 使用已弃用的 jquery .attr() 函数