我自从用了jQuery之后,操作html基本就靠$('#XXX')了。但是这几天重构代码,发现一个文件上传功能却莫名其妙的出错了。
我后台用的是Spring(IOC+MVC)+Hibernate,前端用jQuery+ajaxfileupload插件。这个程序原来是好好的,可不知被我改了哪,居然不响应了。
重新回顾一下全过程:
1.html表单
<div id="add_document_form">
<ul>
<li>
<p>分类:</p>
<select id="document_category" required="true">
<option value="diya">抵押贷款</option>
<option value="zhiya">质押贷款</option>
<option value="xinyong">信用贷款</option>
<option value="danbao">担保贷款</option>
</select>
</li>
<li>
<p>文件:</p>
<input id="select_document" type="file" required="true" />
</li>
</ul>
</div>
2.配置Spring MVC
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
default-lazy-init="false" default-autowire="byName">
<!-- ①:对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
<context:component-scan base-package="org.dreamworker.**.controller" />
<!-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<!-- 文件上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000000" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
</beans>
3.创建Controller,我已经把请求转发到Servic了。(简化版)
/**
* 上传文件
* @param inputId input控件的id
* @param request
* @return
*/
public void doUpLoadFile(String inputId, HttpServletRequest request){
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
String fileDir = "e:\\dreamworker\\crm\\" + user.getName() + "\\";//文件存放目录
FileTools.addFolder(fileDir);
CommonsMultipartFile cFile = (CommonsMultipartFile) multipartRequest.getFile(inputId);//获取上传文件
if(null != cFile){
if(!cFile.isEmpty()){
//上传文件
String uuid = new Long(UUID.randomUUID().getMostSignificantBits()).toString();
File uploadedFile = new File(fileDir + uuid);
FileCopyUtils.copy(cFile.getBytes(), uploadedFile);
}
}
}
应该都配好了吧,现在可以上传了:
$.ajaxFileUpload({
url:'/crm/document.do?method=upLoadDocument&inputId='+inputId,
secureuri:false,
fileElementId:'select_document',
dataType: 'JSON',
success: function (json, status)
{
if(json.indexOf('<pre>') != -1) {
json = json.substring(5, json.length-6);
}
eval("json=" + json);
if('ok' == json.state){
alert('上传成功,你可以在['+json.categoryRemark+']菜单中查看更新!');
}else{
alert(json.msg);
}
}
});
可结果却是莫名其妙,debug发现没有获取到上传的文件。崩溃,回顾整个流程,应该没问题啊!难道是Spring升级后API变了?在查阅文档后,我确定,问题还在上面代码上。继续无奈!!!
终于在逐行核对代码后,我找到了问题的终结。原来是html表单里面input标签没有设置"name"属性值的原因。
我原先写的是:
<input id="select_document" type="file" required="true" />
其实应该写成:
<input id="select_document" name="select_document" type="file" required="true" />
我估计是ajaxfileupload插件的问题,一个小小的疏忽,竟然让我纠缠了5、6个钟头,引以为戒啊!
分享到:
相关推荐
在Spring MVC框架中,文件上传是一项常见的功能,无论是普通的文件上传还是通过Ajax实现的异步文件上传,都为用户提供了更好的交互体验。本篇将详细讲解这两种方式的实现原理及步骤。 首先,让我们来理解一下普通...
在IT行业中,Spring MVC和jQuery AJAX是两种广泛使用的技术,它们在构建现代Web应用程序时起着关键作用。本文将深入探讨如何在Spring MVC框架中利用jQuery的AJAX功能进行前后端交互,提升用户体验。 首先,Spring ...
本教程将详细讲解如何将Spring MVC与jQuery和AJAX结合,实现单个文件和多个文件的上传功能。 首先,我们需要确保项目已经正确地集成了Spring MVC框架。这包括配置Spring的DispatcherServlet、ContextLoaderListener...
Spring作为一个全面的Java企业级应用框架,提供了强大的MVC(Model-View-Controller)架构支持,而jQuery则简化了JavaScript的DOM操作和AJAX通信。本文将深入探讨Spring与jQuery AJAX交互以及Servlet与jQuery AJAX...
- 一旦文件上传完成,后端可以返回一个JSON响应,包含上传结果的状态和可能的错误信息。前端接收到这个响应后,根据状态提示用户,例如显示上传成功或失败的消息。 4. **安全和优化**: - 为了防止恶意文件上传,...
第二部分详细介绍了Prototype、jQuery、DWR、AjaxTags等四个最常用的Ajax框架的用法,并针对每个框架提供了一个实用案例。这两个部分是笔者在“疯狂Java实训营”的培训讲义,是《疯狂Ajax讲义:Prototype/jQuery+DWR+...
在本示例中,我们将探讨如何使用Spring MVC框架与jQuery库结合实现Ajax功能。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序,而jQuery则是一个强大的JavaScript库,简化了DOM操作、事件处理以及异步HTTP...
首先,我们来看标题“Jquery-spring demo”,这表明这是一个演示项目,旨在展示如何将jQuery与Spring进行整合。在这样的项目中,通常会有一个简单的前后端交互场景,例如数据的获取、提交和更新,来展示这两个技术...
总结,通过结合Spring MVC和jQuery的AJAX,我们可以构建出一个动态、响应式的登录系统,同时利用Spring的文件上传功能可以扩展到更丰富的用户交互场景。在实际项目中,还需要考虑安全性、错误处理和用户体验等方面的...
在本项目中,"Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统",我们看到一个基于Java技术栈的Web应用开发实例。这个系统利用了多个核心技术来构建一个功能完备的员工管理...
本教程将详细讲解如何利用jQuery和JSON实现AJAX功能,以创建一个自动下拉框效果,具体到在Eclipse开发环境下进行实践。 首先,jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理和Ajax交互等复杂任务。...
在Spring MVC 4.2框架中实现AjaxUpload(异步文件上传)是一个常见的需求,它允许用户在不刷新整个页面的情况下进行文件上传,提供更好的用户体验。以下是对这一主题的详细阐述: 1. **AjaxUpload简介**: Ajax...
标题中的"spring框架项目+jQueryAjax提交实例"指的是一个整合了Spring框架和jQuery AJAX技术的Web应用程序项目。这个项目提供了一个完整的流程,演示了如何在前端使用jQuery的AJAX功能向后端Spring MVC控制器发送...
在IT行业中,前端开发经常会遇到文件上传的需求,而"jquery-java-ajax-uploadify上传文件"是一个经典的方法,结合了JavaScript库jQuery、Ajax技术以及Uploadify插件来实现这一功能。在这个过程中,我们将深入探讨...
后端的Spring Controller需要配置一个处理POST请求的处理方法,该方法通常会使用`@RequestParam`注解来接收上传的文件。Spring提供了一个`MultipartFile`接口,用于处理multipart/form-data类型的请求,这是上传文件...
通过以上步骤,我们可以实现一个完整的文件上传功能,包括单文件和多文件选择,以及使用Ajax和jQuery提供的反馈机制来提升用户体验。同时,利用Spring MVC的强大功能处理文件上传请求,确保服务端的安全和高效。在...
在本文中,我们将深入探讨如何使用Spring MVC框架与Ajax技术...通过这些步骤,你可以实现一个简单的Spring MVC和Ajax文件上传功能。随着对Spring MVC和Ajax理解的深入,你可以根据实际需求进行更复杂的功能定制和优化。
本项目“spring-mvc-jquery.zip”是关于如何将Spring MVC 3.0框架与jQuery进行整合的一个示例,旨在帮助开发者理解这两者如何协同工作,提升Web应用的用户体验和后端数据处理效率。 首先,Spring MVC是Spring框架的...
通过以上步骤,我们可以实现一个功能完善的Spring+jQuery文件上传带进度条的功能。这不仅提高了用户体验,也让后台处理文件上传的过程更加透明。在实际项目中,还可以根据需求进行扩展,例如添加取消上传、多文件...
总结来说,"Struts2+Spring+Hibernate Jquery ajax simple tree 动态生成树实例"是一个综合运用Java后端框架和前端技术实现动态交互功能的案例。它展示了如何在后端利用SSH整合处理业务逻辑和数据,再通过Ajax和...