使用ajax post上传文件而不刷新页面
Upload files without refreshing the page by using ajax post
我有一个页面文件-upload.jsp,代码片段如下:
<form action="" id="frmupload" name="frmupload" method="post" enctype="multipart/form-data">
<input type="file" id="upload_file" name="upload_file" multiple="" />
<input type="submit" value="Update" />
</form>
我有两个问题:
当我选择一些文件时,即
input
类型file
的onchange
事件,文件应该会被上传。我有一个Java页面,它接收多部分请求参数并将文件上传到所述位置。我的问题是表单提交
onchange
,这样Java文件就可以继续进行进一步的操作。我在谷歌上搜索了很多文章。有人说无法通过Ajax直接上传文件,也有人说可以通过Ajax/jQuery将表单提交到iframe。
我尝试了很多来自互联网的代码,比如:
$(document).ready(function(){ $('upload_file').change(function(){ var data = new FormData(); data.append('file', $(this[0].files[0])); $.ajax({ url: 'photo.jsp', type: 'post', contentType: attr('enctype', "multipart/form-data"), data: data, success: function(data){ alert(data); } }) }); });
但未能得到预期的结果。
我还需要一个上传操作的进度条。
看看这个使用IFrame的例子,它在PHP中,但更改操作应该可以完成
使用隐藏的IFrame 上传Ajax样式的文件
由于您已经在使用jQuery,我肯定会选择jQuery表单插件,它允许您通过AJAX进行表单上传,即使表单包含file
输入。
它的网站上有一个例子,展示了如何显示进度条。
看看这个例子,它正是你想要的
http://www.asp.net/ajaxlibrary/ajaxcontroltoolkitsamplesite/asyncfileupload/asyncfileupload.aspx
相关文章:
- 如何检查Json文件更新,如果更新了,则用更新的数据刷新我的页面
- 无需刷新即可进行简单的客户端文件处理
- 文件上传 |无需刷新页面 |支柱2 |无闪光灯 |
- 在Div中刷新图像,只更改文件内容,不更改名称
- 输入文件:如何在刷新后显示文件名
- AngularJS、DropzoneJS、JSON——上传成功后刷新文件列表
- Firefox DevTools:选项卡和如何在页面重新加载/刷新后保持调试器文件打开?(停止自动关闭)
- 如何使用 AJAX 刷新 PHP 文件
- 如何在刷新时停止我的 xml 文件复制但续订
- 在不刷新页面的情况下更改内容或包含文件
- 定时 Javascript 文件刷新,无需重新加载页面
- Javascript - 如何从文件加载变量并每 3 秒刷新一次
- 在页面刷新时使用 jQuery 重新加载 JSON 文件
- 从包含的 php 文件刷新查询结果
- 在不刷新 HTML 的情况下重新加载 JavaScript 文件
- 在部署时刷新静态 JavaScript 文件
- 如何使用 jQuery 将变量从隐藏字段发送到远程 PHP 文件,并在引导模式中显示脚本的结果,而无需刷新
- 如何在不刷新的情况下在同一页面上显示上传的文件内容
- 如何在不刷新页面的情况下每 10 秒在本地重新加载一次 JS 文件
- 在 jQuery Multi 文件上传器中完成上传后刷新页面