`
mfan
  • 浏览: 340685 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

springside4使用Jquery uploadify3.2上传文件

阅读更多

 

首先需要使用的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问题就解决了。希望对大家有所帮助!

 

  • 大小: 10.7 KB
分享到:
评论
3 楼 mfan 2013-04-19  
hua758209 写道
求源码,本人比较笨啊,没完整代码看不懂

springside4可以到https://github.com/springside/springside4上下载,只是简单的将uploadify整合到框架中,配置spring-mvc.xml,结合前台js、html和后台的Controller就容易理解了
2 楼 hua758209 2013-04-09  
求源码,本人比较笨啊,没完整代码看不懂
1 楼 hua758209 2013-04-09  
怎么跟springside整合的代码一句也没有

相关推荐

    springside3.3.4 使用方法

    ### springside3.3.4使用方法与SSH整合详解 #### 一、Springside简介 Springside项目是基于Spring框架的一个应用架构示例,它提供了一套完整的开发模式来构建企业级Java Web应用程序。Springside 3.3.4版本作为一...

    SpringSide4 参考手册

    SpringSide4参考手册是一份详尽的文档,涵盖了使用SpringSide4.0版本开发应用时可能会用到的各种技术组件和模块。SpringSide是一个开源的Java开发平台,它集成了Spring框架和大量实用的组件,以方便开发人员构建复杂...

    springside4(showcase)

    标题"Springside4 (showcase)"暗示了这是一个以展示SpringSide 4核心特性和功能为主的应用实例,而"描述"中的"Springside4"则进一步确认了我们正在探讨的是SpringSide 4框架。标签"springmvc"指出该示例着重于Spring...

    Springside4 学习整理

    【Springside4 学习整理】 Springside4 是一个基于 JavaEE 平台的开源项目,它围绕 Spring Framework 构建,旨在提供实用的示例和最佳实践。Springside4 不是一个完整的框架,而是一个架构示例,帮助开发者理解和...

    springside4-4.2.3.GA

    SpringSide旨在简化Spring的使用,通过提供最佳实践、代码样例和构建工具,使得开发者能够更快速地构建高质量的企业级应用。 在SpringSide 4.2.3.GA中,我们可以看到它对Spring Boot的深度整合。Spring Boot是...

    springSide使用手册

    4. 如不使用 Maven,可以使用 `copy-jar.bat` 命令将依赖的 jar 文件复制到 `/webapp/WEB-INF/lib` 目录,并将这些 jar 文件纳入版本控制系统。 生成的项目包含以下内容: 1. Maven 的 `pom.xml` 文件和遵循 Maven ...

    SpringSide4

    SpringSide4框架简单使用 sprindside4只写一个简单的DAO接口,日后再根据需要添加方法定义。不需要Dao implements

    springside4 quickstart

    总的来说,“springside4 quickstart”实例为开发者提供了一个完整的SpringSide 4开发环境,通过学习和实践,你可以快速掌握SpringSide 4的使用技巧,提升你的Java开发能力。在后续的开发过程中,不断探索和理解...

    springside4-master

    《SpringSide4-Master:JavaEE世界的璀璨明珠》 SpringSide4-Master,这是一个以Spring Framework为核心的JavaEE应用参考示例项目,它以其Pragmatic(实用主义)风格深受广大开发者喜爱,是JavaEE世界中不可或缺的...

    springside4

    分享 江南白衣的 springside4 非常强大的Javaee 框架。 官网:http://www.springside.org.cn/ 代码:https://github.com/springside/springside4

    springside4-4.2.3.GA.tar

    springside4-4.2.3.GA.tar

    有springside4.2.3-GA.jar 包

    springside4.2.3-GA.jar是SpringSide框架的一个版本,包含了该框架的所有核心组件和依赖,使得开发者可以快速地引入并使用SpringSide的相关功能。 SpringSide是一个开源的Java企业级开发工具集,它基于Spring ...

    springside_4jar.rar

    这个名为"springside_4jar.rar"的压缩包文件,包含了SpringSide 4的全部组件,是开发者们学习和使用SpringSide 4的重要资源。 1. **SpringSide简介** SpringSide是针对Java开发者的一个轻量级、模块化的快速开发...

    dwz+springside4

    《DWZ+Springside4整合与后台Shiro权限框架详解》 在现代Web开发中,集成优秀的开源框架可以极大地提升开发效率和系统的稳定性。本文将深入探讨如何将DWZ(Dynamic Web Zone)前端框架与Springside4后端框架进行...

Global site tag (gtag.js) - Google Analytics