无刷新上传HTML+JS(支持chrome并已测试)

待解决:多个文件同时上传(既然能够接受多个input域的表单上传,必定能够上传FIle数组,但测试未成功,有待解决)
javascript


最近想作无刷新上传,网上搜索N久,找到一个方法,记录之。
html

ajaxfileupload.js 是一个jquery插件,可是调了两天都没成功。。继续网上寻找解决方法,看到一个使用java

XMLHttpRequest 和 FormData 对象实现的,原文连接:http://itindex.net/blog/2012/04/14/1334367483953.htmljquery

原文未使用jquery。。。下面是我稍做修改的代码,获取File对象仍是有些笨。。有更好的方法但愿您留个言哈。。ajax

废话很少说了。
数组

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript" src="./js/jquery.js"></script>
    <script>
        function performAjaxSubmit() {
            var text = $("#filename").val();
            //var file = document.getElementById("file1").files[0];
            var file = $("#file1")[0].files[0];

            var formdata = new FormData();
            formdata.append("filename", text);
            formdata.append("file1", file);

            var xhr = new XMLHttpRequest();
            xhr.open("POST", "/upload-mvc-txt.do", true);
            xhr.send(formdata);
            xhr.onload = function (e) {
                if (this.status == 200) {
                    alert(this.responseText);
                }
            };
        }
    </script>
</head>
<body>
<img id="loading" src="./images/loading.gif" style="display:none;"/>
<input id="file1" type="file" size="20" name="file1"/>
<input id="filename" name="filename" type="text" />
<button class="button" id="buttonUpload" onclick="performAjaxSubmit()">上传</button>
</body>
</html>

能够修改input:file的样式,移步: http://my.oschina.net/cwzhang/blog/291398
mvc