js 模拟弹框选择文件 异步无刷新上传

<html>
<head>
<script type="text/javascript">
function test()
{
var inputObj = document.createElement('input');//创建<input />
    inputObj.setAttribute('id', '_ef'); //创建id <input id="_ef" />
    inputObj.setAttribute('type', 'file'); //创建type <input id="_ef" type="file" />
    inputObj.setAttribute("style", 'visibility:hidden'); //创建style <input id="_ef" type="file" style="visibility:hidden" />
    document.body.appendChild(inputObj);
    inputObj.click(); //选择 (触发改隐藏按钮)

   uploadFile(inputObj.value);

}

function uploadFile(userfile) {
        var fd = new FormData();         //FormData对象
        var length = userfile.files.length;        //获取选中文件的个数(单文件直接追加即可)
        for(var i=0; i<length; i++){
            fd.append("userfile", userfile.files[i]);    //多文件追加到FormData
        }
        //fd.append("userfile", userfile.files[0]);        //单文件追加到FormData
        var xhr = new XMLHttpRequest();       //XMLHttpRequest对象
        xhr.open("POST", "${qy }/upload/uploadFiles");      //初始化一个请求
        // 注意:所有相关的事件绑定必须在调用send()方法之前进行.
        xhr.send(fd);//发送请求. 如果该请求是异步模式(默认),该方法会立刻返回. 相反,如果请求是同步模式,则直到请求的响应完全接受以后,该方法才会返回.
    }

</script>
</head>
<body>
<button type="button" onclick="test()">点击这里</button>
</body>
</html>

这是一个模拟创建元素并在前端触发该元素弹出窗口 能够获得选择文件夹的完整路径

posted @ 2018-01-03 18:01  伏地魔程序员  阅读(1504)  评论(0编辑  收藏  举报