栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用JSP / Servlet和Ajax将文件上传到服务器?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用JSP / Servlet和Ajax将文件上传到服务器?

到目前为止,

XMLHttpRequest
从jQuery使用的当前版本1开始, 无法
使用Javascript上传文件
XMLHttpRequest
。常见的解决方法是让Javascript创建一个隐藏文件,
<iframe>
然后向其提交表单,以便创建印象,使它异步发生。这也正是大多数jQuery文件上传插件所做的事情,例如jQuery
Form插件
(此处为示例)。

假设您用HTML表单重写了JSP,这样当客户端禁用JS时它就不会 损坏 (就像您现在使用的…),如下所示:

<form id="upload-form"  action="/Upload" method="post" enctype="multipart/form-data">    <input type="file" id="file" name="file1" />    <span id="upload-error" >${uploadError}</span>    <input type="submit" id="upload-button" value="upload" /></form>

然后在jQuery Form插件的帮助下,

<script src="jquery.js"></script><script src="jquery.form.js"></script><script>    $(function() {        $('#upload-form').ajaxForm({ success: function(msg) {     alert("File has been uploaded successfully"); }, error: function(msg) {     $("#upload-error").text("Couldn't upload file"); }        });    });</script>

至于servlet方面,这里不需要做任何特殊的事情。只需使用与不使用Ajax时完全相同的方法来实现它:如何使用JSP /
Servlet将文件上传到服务器?

如果

X-Requested-With
标头等于
XMLHttpRequest
或不相等,您只需要在servlet中进行一次额外的检查,这样您就可以知道在客户端禁用JS的情况下如何返回响应(到目前为止,它大多是较旧的移动设备禁用了JS的浏览器)。

if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))) {    // Return ajax response (e.g. write JSON or XML).} else {    // Return regular response (e.g. forward to JSP).}

请注意,相对较新的

XMLHttpRequest
版本2能够使用new
File
FormData
API发送所选文件。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415479.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号