需要的下载文件:
jQuery.form.js
jquery.js
commons-fileupload.jar
commons-io.jar
示例图片
pom.xml
<!-- 文件上传 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency>
web.xml 解决上传后中文文件名乱码问题
<!-- 解决提交时中文乱码问题 start --> <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 解决提交时中文乱码问题 end -->
servlet-context.xml中添加对上传的支持
<!-- 支持文件上传 --> <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> </beans:bean>
jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path; %> <html lang="us"> <head> <meta charset="utf-8"> <title>springmvc上传文件</title> <link type="text/css" href="<%=basePath%>/resources/css/jquery-ui/jquery-ui.css" rel="stylesheet" /> <link href="<%=basePath%>/resources/themes/bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <h2>springmvc上传文件</h2> <br/> <br/> <div class="alert alert-success" id="formSucc"></div> <br/> <form role="form" id="uploadForm" name="uploadForm" enctype="multipart/form-data"> <div class="form-group"> <label>项目名称</label> </div> <div class="form-group"> <label> <input class="form-control" maxlength="30" id="projectName" name="projectName"> </label> </div> <div class="form-group"> <label>File input</label> <input type="file" name="file"> </div> <button class="btn" type="button" id="doSave">提交</button> </form> <div></div> </body> </html> <script type="text/javascript" src="<%=basePath%>/resources/js/jquery/jquery-1.11.3.min.js"></script> <script type="text/javascript" src="<%=basePath%>/resources/js/jquery-ui/jquery-ui.js"></script> <script type="text/javascript" src="<%=basePath%>/resources/js/jqueryForm/jquery.form.js"></script> <script> $(function(){ $("#formSucc").hide(); $("#doSave").click(function(){ var requestUrl = "<%=basePath%>/widget/saveFile.json"; var projectName = $("#projectName").val(); $("#uploadForm").ajaxSubmit({ type: 'post', url: requestUrl, //data: {projectName: projectName}, //应该把这个去掉,要不然,值会有重复,因为form提交时已经做了一次提交了。 //如果projectName的值为"tt",如果这个地方不去掉,那么提交接收的值变成"tt,tt"了。 contentType: "application/x-www-form-urlencoded; charset=utf-8", success: function(data) { if(data.success){ $(".infoTips").remove(); $("#formSucc").show(); $("#formSucc").append("<label class='infoTips'>"+data.message+"</label>"); } } }); }); }); </script>
Java的controller文件
package com.paincupid.springmvc.widget.controller; import java.io.IOException; import java.io.InputStream; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import com.paincupid.springmvc.finance.domain.Finance; import com.paincupid.springmvc.test.domain.Person; import com.paincupid.springmvc.util.BaseJsonRst; import com.paincupid.springmvc.util.CreatMockData; /** * * @author arthur.paincupid.lee * @since 2016.01.24 * */ @Controller @RequestMapping("/widget") public class widgetController { private static final Logger log = LoggerFactory.getLogger(widgetController.class); /** * 上传文件 * 在前台的访问路径为: http://localhost:8080/springmvc/widget/uploadFile/view * @return */ @RequestMapping("/uploadFile/view") public String uploadFile() { return "widget/uploadFile"; } @ResponseBody @RequestMapping(value="/saveFile", method=RequestMethod.POST) public BaseJsonRst saveFile(@RequestParam MultipartFile file, @RequestParam String projectName) { BaseJsonRst view = new BaseJsonRst(); String orgiginalFileName = ""; try { String fileName = file.getName(); InputStream inputStream = file.getInputStream(); String content = file.getContentType(); orgiginalFileName = file.getOriginalFilename(); log.info("fileName: "+fileName+", inputStream: "+ inputStream +"\r\n content: "+content+", orgiginalFileName: ="+ orgiginalFileName +"\r\n projectName: "+ projectName); } catch (IOException e) { e.printStackTrace(); } view.setSuccess(true); view.setMessage("上传: "+orgiginalFileName+" 文件成功!"); return view; } }
下载源码地址:http://xiazai.jb51.net/201701/yuanma/springmvc_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
jQuery异步上传, 其使用原理是iframe. 特点: 小巧 简单 使用方法 1 在页面引入jquery.upload js 2 代码 // upload_img 为一个按钮, 点击时选择文件上传$("#upload_img").click(function() { // 上传方法 $.upload({ // 上传地址
本文向大家介绍使用AjaxFileUpload.js实现异步文件上传示例,包括了使用AjaxFileUpload.js实现异步文件上传示例的使用技巧和注意事项,需要的朋友参考一下 ajax是无法提交文件的,所以在上传图片并预览的时候,我们经常使用Ifame的方法实现看似异步的效果。但是这样总不是很方便的,AjaxFilleUpload.js对上面的方法进行了一个包装,使得我们不用去管理Iframe
本文向大家介绍利用SpringMVC和Ajax实现文件上传功能,包括了利用SpringMVC和Ajax实现文件上传功能的使用技巧和注意事项,需要的朋友参考一下 个人根据相关资料实现利用SpringMVC和Ajax实现文件上传功能: 环境: 1.JDK1.7 2.maven3.3.9 3.Tomcat7 第一步: 导入相关jar包: 第二步: 配置springmvc-config.xml 第三步:
问题内容: 我想用jQuery异步上传文件。 我只获取文件名,而不是上传文件。我该怎么做才能解决此问题? 问题答案: 使用HTML5,你可以使用Ajax和jQuery进行文件上传。不仅如此,你还可以执行文件验证(名称,大小和MIME类型)或使用HTML5进度标签(或div)处理进度事件。最近,我不得不制作一个文件上传器,但是我不想使用Flash,iframes或插件,经过一番研究后,我想到了解决方
本文向大家介绍SpringMVC 文件上传配置,多文件上传,使用的MultipartFile的实例,包括了SpringMVC 文件上传配置,多文件上传,使用的MultipartFile的实例的使用技巧和注意事项,需要的朋友参考一下 基本的SpringMVC的搭建在我的上一篇文章里已经写过了,这篇文章主要说明一下如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤 文件上传项目的
本文向大家介绍基于Jquery插件实现跨域异步上传文件功能,包括了基于Jquery插件实现跨域异步上传文件功能的使用技巧和注意事项,需要的朋友参考一下 先说明白 这个跨域异步上传功能我们借助了Jquery.form插件,它在异步表单方面很有成效,而跨域我们会在HTTP响应头上添加access-control-allow-method,当然这个头标记只有IE10,火狐和谷歌上支持,对于IE10以下的