有没有办法使用纯原型和ajax上传文件。我在谷歌上搜索过它,但没有得到任何满意的结果。有人可以帮帮我吗?
答案 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';
当然,只有当两个端点位于同一台服务器上时,这才会起作用,原因是同源策略。