AJAX文件上传实现

仅用于个人知识总结,高手勿看。

 

由于文件上传是以二进制流的形式进行传输的,而身为AJAX的关键对象之一的xmlhttp对象传输的却是xml格式的字符流,导致要我们想要真正的实现AJAX异步文件上传的梦想破灭。于是不笨的高层应用程序员只好放弃xmlhttp对象,另谋出路。以下是一种解决方案的实现步骤:

 

(1)添加用于文件上传的form

<form name="upfile_form" action="/fileUploadServlet" method="POST"

enctype="multipart/form-data" target="screct_frame" >

  ......

 

</form>

作为文件上传用途,必须谨记两个方针:method="POST" 和 enctype="multipart/form-data"


(2)在表单所在页面添加一个隐藏的iframe,并将上传from标签的target属性指向frame。frame用于处理页面跳转,服务端输出响应(利用这个特性,可以模拟AJAX的回调函数实现)。

 <iframe name="screct_frame" style="display:none;"></iframe>

 

(3)

在表单所在页面撰写js模拟回调函数


var callback = function (result){

    // 成功或失败的标志,由你决定

if (result == 1) {

do whatever you want;

}else

   help youself;

}


(4) 在servlet 中处置完毕上传的文件后,用response输出js代码,实现回调callback方法

public void doPost(...){

// 处理上传的文件,可以见另一篇日志(点击访问)

// ...

response.getWriter().print("<script>parent.callBack(result);</script>"); ...

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Spring MVC和AJAX文件上传下载,你可以按照以下步骤操作: 文件上传: 1. 创建一个包含文件上传表单的HTML页面。 2. 创建一个Spring MVC控制器,用于处理文件上传的请求。 3. 在控制器中,使用`@RequestMapping`注解来映射文件上传的URL,并使用`@RequestParam`注解来接收文件。 4. 在处理方法中,使用MultipartFile参数来接收上传的文件,并使用`transferTo()`方法将文件保存到指定位置。 文件下载: 1. 创建一个Spring MVC控制器,用于处理文件下载的请求。 2. 在控制器中,使用`@RequestMapping`注解来映射文件下载的URL。 3. 在处理方法中,使用`@PathVariable`注解来接收文件名参数。 4. 使用`ServletContext`对象获取文件路径,并创建一个`File`对象。 5. 使用`ResponseEntity`类设置下载响应的头部信息和内容。 通过AJAX实现文件上传和下载: 1. 使用JavaScript创建一个AJAX请求对象。 2. 使用FormData对象将文件添加到请求中。 3. 发送AJAX请求到Spring MVC控制器的URL,并设置请求方法为POST。 4. 在Spring MVC控制器中,使用MultipartFile参数接收文件,并处理文件上传的逻辑。 5. 在返回的响应中,可以包含上传成功或失败的消息。 注意:在Spring配置文件中,需要配置multipart解析器来支持文件上传。 以上是实现Spring MVC和AJAX文件上传下载的一般步骤,你可以根据具体需求进行适当的调整和扩展。希望对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值