使用prototype.js上传多个文件

时间:2014-02-20 10:18:43

标签: ajax prototypejs

有没有办法使用纯原型和ajax上传文件。我在谷歌上搜索过它,但没有得到任何满意的结果。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

让“Ajax”文件上传工作的最简单方法是使用keyhole iframe作为表单的目标:

<form action="handler/url" enctype="multipart/form-data" target="keyhole" method="post">
    <input type="file" multiple name="user_file[]" />
    <input type="submit" id="upload" value="Upload">
</form>
<!-- style the following to be tiny/hidden -->
<iframe id="keyhole" src="about:blank"></iframe>

这个技巧就是显示一个等待指示器,并在上传完成后隐藏它。

<div id="waiting" style="display:none"></div>
<script type="text/javascript">
    $('upload').observe('click', function(evt){
        $('waiting').show();
    });
</script>

在文件上传处理程序中,成功上传后返回text / javascript标头和以下脚本:

var waiting = top.document.getElementById('waiting');
if(waiting) waiting.style.display = 'none';

当然,只有当两个端点位于同一台服务器上时,这才会起作用,原因是同源策略。