javascript - 使用 HTML5 FormData 上传文件不适用于 IE10 桌面版

标签 javascript html upload internet-explorer-10

我有一个简单的脚本来使用 HTML5 FormData 上传文件,它在大多数支持 HTML5 的浏览器上运行良好(我针对 Chrome、FireFox、Opera 和 IE10 Metro 进行了测试)。唯一无法正常工作的浏览器是 IE10 桌面,问题是文件从未上传,在服务器端 Request.Files.Count 始终为零。

知道为什么吗,或者这只是 IE10 桌面错误?

这是脚本:

<input type="file" id="fileInput" multiple="true"/>
<button type="button" id="uploadButton">Upload</button>
<div>
    <span>Status: </span> <strong id="status"></strong>
</div>

<script src="~/Scripts/jquery-1.9.1.js"></script>
<script type="text/javascript">

    var files = [];

    $(document).ready(function() {

        $('#fileInput').change(function (e) {
            // Add all selected files to 'files' array

            $.each(e.target.files, function(i, item) {
                files.push(item);
            });
        });


        $('#uploadButton').click(function () {

            // Put files to FormData
            var formData = new FormData();
            $.each(files, function(i, item) {
                formData.append('X-FILE-' + i, item);
            });

            // Send FormData to server
            $.ajax({
                url: '/home/upload',
                data: formData,
                cache: false,
                contentType: false,
                processData: false,
                type: 'POST',
                success: function (data) {
                    if (data == "YES") {
                        $('#status').text("File Uploaded");
                    } else {
                        $('#status').text("File NOT Uploaded");
                    }
                }
            });
        });
    });
</script>

这是捕获“/home/upload”操作的服务器端代码:

[HttpPost]
public ActionResult Upload()
{
    var success = Request.Files.Count > 0;
    return Content(success ? "YES" : "NO");
}

我还将我的代码推送到了 Github 上的公共(public)存储库 https://github.com/budiadiono/IE10VSHtml5

提前致谢!

最佳答案

我确定这是 IE 10 桌面版的错误。来自 Telerik 的演示 http://demos.telerik.com/aspnet-ajax/asyncupload/examples/overview/defaultcs.aspx在 IE 10 Desktop 上也不能工作,但在 IE 10 Metro 上工作正常。

更具体地说,这是 IE 10 桌面版本:

Version: 10.0.9200.16540
Update Versions: 10.0.4 (KB2817183)
Product ID: 00150-20000-00003-AA459

关于javascript - 使用 HTML5 FormData 上传文件不适用于 IE10 桌面版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16051558/

相关文章:

iphone - 使用 iPhone 应用程序将照片上传到任意 FTP

javascript - 从图像中读取透明像素

javascript - 在页面底部包含 JavaScript,来自 Partial Page

javascript - 将 javascript 元素背景图像设置为等于下载网址

javascript - Xhr 上传事件.loaded 问题

node.js - 替代 sails-skipper 上传?

javascript - 禁用特定下拉值上的按钮

javascript - 为什么我的模态框不会在窗口的正中央打开?

删除项目时的 JavaScript 计算

javascript - 如何清除在javascript中提交表单后的错误消息