首先需要使用的uploadify插件,包含以下几个主要文件
jquery.min.js(uploadify3.2使用的是jquery-1.7.2.版本)
jquery.uploadify.min.js(开发建议使用jquery.uploadify.js)
uploadify.swf
uploadify.css
在页面中引入相关的js和css文件
<script src="${ctx}/static/jquery/uploadify/jquery.min.js" type="text/javascript"></script> <script src="${ctx}/static/jquery/uploadify/jquery.uploadify.min.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="${ctx}/static/jquery/uploadify/uploadify.css">
在页面中的uploadify组件
<h1>Uploadify Demo</h1> <form> <div id="queue"></div> <input id="file" name="file" type="file" multiple="true"> </form>
js部分的操作代码
<script type="text/javascript"> $(function() { $("#file").uploadify({ method : 'post', swf : '${ctx}/static/jquery/uploadify/uploadify.swf', // uploadify.swf在项目中的路径 uploader : '${ctx}/utils/uploadify', // 后台UploadController处理上传的方法 fileObjName : 'file', // The name of the file object to use in your server-side script fileSizeLimit : 0, // The maximum size of an uploadable file in KB (Accepts units B KB MB GB if string, 0 for no limit) successTimeout : 30, // The number of seconds to wait for Flash to detect the server's response after the file has finished uploading removeCompleted : false, // Remove queue items from the queue when they are done uploading fileSizeLimit : '10MB', buttonText : '选择文件', height : 30, width : 120 }); }); </script> <h1>UPLOADIFY DEMO</h1> <div class="controls"> <div id="queue"></div> <input id="file" name="file" type="file" multiple="true"> </div>
在spring-mvc.xml做相应的上传文件配置
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding"> <value>UTF-8</value> </property> <property name="maxUploadSize"> <value>32505856</value><!-- 上传文件大小限制为31M,31*1024*1024 --> </property> <property name="maxInMemorySize"> <value>4096</value> </property> </bean>
在后台处理文件上传的Controller操作
package com.nnwufang.herosp.web.utils; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.Map; import java.util.Random; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import org.springframework.stereotype.Controller; import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.PathVariable; 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 org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartResolver; @Controller @RequestMapping(value="/utils") public class UploadController{ /** * 上传文件 * @return * @throws IOException * @throws IllegalStateException */ @RequestMapping(value = "/uploadify", method = RequestMethod.POST) @ResponseBody public String upload(HttpServletRequest request, HttpServletResponse response){ String responseStr=""; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); // 文件保存路径 String ctxPath=request.getSession().getServletContext().getRealPath("/")+File.separator+"uploadFiles"; SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM"); String ymd = sdf.format(new Date()); ctxPath += File.separator + ymd + File.separator; // 创建文件夹 File file = new File(ctxPath); if (!file.exists()) { file.mkdirs(); } String fileName = null; for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { // 上传文件 MultipartFile mf = entity.getValue(); fileName = mf.getOriginalFilename(); String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); // 重命名文件 SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt; File uploadFile = new File(ctxPath + newFileName); try { FileCopyUtils.copy(mf.getBytes(), uploadFile); responseStr="上传成功"; } catch (IOException e) { responseStr="上传失败"; e.printStackTrace(); } } return responseStr; } }
初步学习springside4,在使用uploadify实现文件上传功能的过程中报出了java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory的异常,在项目中导入commons-fileupload-1.2.2.jar问题就解决了。希望对大家有所帮助!
相关推荐
### springside3.3.4使用方法与SSH整合详解 #### 一、Springside简介 Springside项目是基于Spring框架的一个应用架构示例,它提供了一套完整的开发模式来构建企业级Java Web应用程序。Springside 3.3.4版本作为一...
SpringSide4参考手册是一份详尽的文档,涵盖了使用SpringSide4.0版本开发应用时可能会用到的各种技术组件和模块。SpringSide是一个开源的Java开发平台,它集成了Spring框架和大量实用的组件,以方便开发人员构建复杂...
标题"Springside4 (showcase)"暗示了这是一个以展示SpringSide 4核心特性和功能为主的应用实例,而"描述"中的"Springside4"则进一步确认了我们正在探讨的是SpringSide 4框架。标签"springmvc"指出该示例着重于Spring...
【Springside4 学习整理】 Springside4 是一个基于 JavaEE 平台的开源项目,它围绕 Spring Framework 构建,旨在提供实用的示例和最佳实践。Springside4 不是一个完整的框架,而是一个架构示例,帮助开发者理解和...
SpringSide旨在简化Spring的使用,通过提供最佳实践、代码样例和构建工具,使得开发者能够更快速地构建高质量的企业级应用。 在SpringSide 4.2.3.GA中,我们可以看到它对Spring Boot的深度整合。Spring Boot是...
4. 如不使用 Maven,可以使用 `copy-jar.bat` 命令将依赖的 jar 文件复制到 `/webapp/WEB-INF/lib` 目录,并将这些 jar 文件纳入版本控制系统。 生成的项目包含以下内容: 1. Maven 的 `pom.xml` 文件和遵循 Maven ...
SpringSide4框架简单使用 sprindside4只写一个简单的DAO接口,日后再根据需要添加方法定义。不需要Dao implements
总的来说,“springside4 quickstart”实例为开发者提供了一个完整的SpringSide 4开发环境,通过学习和实践,你可以快速掌握SpringSide 4的使用技巧,提升你的Java开发能力。在后续的开发过程中,不断探索和理解...
《SpringSide4-Master:JavaEE世界的璀璨明珠》 SpringSide4-Master,这是一个以Spring Framework为核心的JavaEE应用参考示例项目,它以其Pragmatic(实用主义)风格深受广大开发者喜爱,是JavaEE世界中不可或缺的...
分享 江南白衣的 springside4 非常强大的Javaee 框架。 官网:http://www.springside.org.cn/ 代码:https://github.com/springside/springside4
springside4-4.2.3.GA.tar
springside4.2.3-GA.jar是SpringSide框架的一个版本,包含了该框架的所有核心组件和依赖,使得开发者可以快速地引入并使用SpringSide的相关功能。 SpringSide是一个开源的Java企业级开发工具集,它基于Spring ...
这个名为"springside_4jar.rar"的压缩包文件,包含了SpringSide 4的全部组件,是开发者们学习和使用SpringSide 4的重要资源。 1. **SpringSide简介** SpringSide是针对Java开发者的一个轻量级、模块化的快速开发...
《DWZ+Springside4整合与后台Shiro权限框架详解》 在现代Web开发中,集成优秀的开源框架可以极大地提升开发效率和系统的稳定性。本文将深入探讨如何将DWZ(Dynamic Web Zone)前端框架与Springside4后端框架进行...