`
cqyqing
  • 浏览: 56748 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

springmvc+SWFUpload实现文件上传

阅读更多
1、spring代码如下

public ModelAndView upload(HttpServletRequest request,
			HttpServletResponse response) throws Exception{
		try{
			String uploadDir = getServletContext().getRealPath("/upload");
			File dirPath = new File(uploadDir);
			if (!dirPath.exists()) {
				dirPath.mkdirs();
			}
			
			MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
			CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("filedata");//这里是表单的名字,在swfupload.js中this.ensureDefault("file_post_name", "filedata");
			
			InputStream stream = file.getInputStream();
			String fileName = file.getOriginalFilename();
			fileName = new String(fileName.getBytes(),"utf-8");
			String fileNameFull = uploadDir + Constants.FILE_SEP + fileName;
			OutputStream bos = new FileOutputStream(fileNameFull);
			int bytesRead = 0;
			byte[] buffer = new byte[8192];
			while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
				bos.write(buffer, 0, bytesRead);
			}

			bos.close();
			// close the stream
			stream.close();
			
		}catch(Exception e){
			e.printStackTrace();
		}
		return new ModelAndView("checkReport/checkReportSearchTable");//这里要制定返回页,如果返回Null,上传没问题,但是上传完毕后,页面会弹出404错误
	}


2、jsp页面
    首先要引入两个js文件(必须的)
    <script type="text/javascript" src="scripts/js/swfupload.js"></script>
<script type="text/javascript" src="scripts/js/handlers.js"></script>


var swfu;
		window.onload = function(){
			swfu = new SWFUpload({
				// Backend Settings
				upload_url: "unitProductValueController.html?method=upload",	//上传或解析处理类的URL
                
				// File Upload Settings
				file_size_limit : 0, // 限制上传文件的大小, 0表示不受限制
				file_types : "*.xls;*.txt;*.pdf;*.doc;*.xlsx;*.docx",           // 上传文件类型,多个文件用分号隔开
				file_types_description : "", // 上传文件类型描述
				file_upload_limit : "0",    // 限制上传文件选择的个数, "0"表示不受限制
		
				file_queue_error_handler : fileQueueError,
				file_dialog_complete_handler : fileDialogComplete,
				upload_progress_handler : uploadProgress,         //上传过程中调用的方法
				upload_error_handler : uploadError,               //上传错误调用的方法
				upload_success_handler : uploadSuccess,           
				upload_complete_handler : uploadComplete,         //上传完成调用的方法
				
				//post_params : {
				//	'state':'1234567'
				//},
				//post_params :{};

				// Button settings
			    button_image_url : "",	// Relative to the SWF file
			    button_placeholder_id : "spanButtonPlaceholder",//html标签ID,如DIV或SPAN
			    button_width: 100,
			    button_height: 22,
			    button_text : '<u>添加附件</u>',//生成的按钮内容
		    	button_text_style : '.button {font-size: 14pt;cursor:pointer;text-align:right} .buttonSmall { font-size: 10pt;cursor:pointer;text-align:right }',
			    button_text_top_padding: 1,
			    button_text_left_padding: 45,

				// Flash Settings
				flash_url : "<psmis:webRoot/>scripts/js/swfupload.swf",	// Relative to this file
				//上传或解析过程中,显示进度信息
				custom_settings : {
					upload_target : "divFileProgressContainer"
				},
				// Debug Settings
				debug: false
			});
		}


3、html部分,加一个form表单即可,注意红色部分
<form action="unitProductValueController.html?method=upload" id="formMessage"  method="post"  enctype="multipart/form-data">
<table width="100%" id="messageTable" border="1" cellpadding="0" cellspacing="0" style="border-collapse:collapse" bordercolor="#1372A0">
<tr>
<td colspan="2" style="height:30px;">
<span id="enterpriseName"></span>
</td>
</tr>
<tr>
<td style="text-align:right">邮件类型:</td>
<td style="height:30px;width: 80%;">
<span style="float:left;" id="messageTypeSpan">
<input type="radio" name="messageType" value="1" checked="checked" id="messageType1" style="border:0px"><label for="messageType1">催报邮件</label>
<input type="radio" name="messageType" value="2" id="messageType2" style="border:0px"><label for="messageType2">重报邮件</label>
</span>
</td>   
</tr>
<tr>
<td   style="text-align:right">主题:</td>
<td  style="height:30px;text-align:center">
<input type="text" name="subject" name="subject" style="width:98%">
</td>
</tr>
<tr>
<td  style="text-align:right">
<div id="swfu_container" style="margin: 0px 5px;">
<div>
<span id="spanButtonPlaceholder"></span>
</div>
</div>
</td>
<td  style="height:30px;">
<div id="divFileProgressContainer" style="height: 30px;float:left;margin-left:4px;"></div>
</td>
</tr>
<tr>
<td style="text-align:right;vertical-align:top;padding-top:3px;">邮件内容:</td>
<td valign="top" >
<textarea name="emailContent"   id="emailContent" style="height:150px;width:350px;border:0px solid  #000000;float:left "></textarea>
<select multiple="multiple" id="consignee" name="consignee" size="9" style="vertical-align:top;float:right;margin-right:5px;width:120px;">
<option>模板1</option>
<option>模板2</option>
<option>模板3</option>
</select>
</td>
</tr>
            <tr>
<td  align="right" colspan="2">
<input type="button" name="ibtnSearch" value="发送" id="ibtnSearch" class="com_btn2"  onclick="saveMessage()"/>
<input type="button" name="iBtnSaveQuery" value="重置"
id="iBtnSaveQuery" class="com_btn2" onclick="document.getElementById('textarea').value='';" />
</td>
</tr>
</table>
</form>
分享到:
评论
3 楼 Lucy_duxi 2012-06-06  
有具体的上传项目吗?
2 楼 Lucy_duxi 2012-06-06  
Constants.FILE_SEP的值是多少呢?
1 楼 xbyang18 2011-07-15  
[img][/img]     

相关推荐

    Java基于Spring+SpringMVC+MyBatis实现的学生信息管理系统源码.zip

    Java基于Spring+SpringMVC+MyBatis实现的学生信息管理系统源码,SSM+Vue的学生管理系统。 Java基于Spring+SpringMVC+MyBatis实现的学生信息管理系统源码,SSM+Vue的学生管理系统。 Java基于Spring+SpringMVC+...

    基于SpringMVC+Hibernate实现的在线购物商城.zip

    基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+...

    SpringMvc+SWFUpload实现文件异步上传

    在本文中,我们将深入探讨如何使用Spring MVC框架与SWFUpload库来实现文件的异步上传功能。异步上传能够显著提升用户体验,因为它允许用户在上传文件时继续使用其他页面功能,无需等待整个上传过程完成。 **Spring ...

    SpringMVC+BUI实现文件上传实例

    SpringMVC+BUI实现文件上传实例,虽然本工程的名称是first_maven_project,但是确实是SpringMVC+BUI实现文件上传实例源码,请放心下载,实例详解请访问博主博客:http://blog.csdn.net/u013142781

    完善的Spring+SpringMVC+Mybatis+easyUI后台管理系统(RESTful API+redis).zip

    完善的Spring+SpringMVC+Mybatis+easyUI后台管理系统(RESTful API+redis).zip 完善的Spring+SpringMVC+Mybatis+easyUI后台管理系统(RESTful API+redis).zip 完善的Spring+SpringMVC+Mybatis+easyUI后台管理系统...

    Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven实现的通用权限管理系统

    Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven+EasyUI+Bootstrap实现的通用权限管理系统。 Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven+EasyUI+Bootstrap实现的通用权限管理系统 Spring+SpringMVC+...

    javaweb课设基于SpringBoot+SpringMVC+Mybatis实现的手机销售后台管理系统源码.zip

    javaweb课设基于SpringBoot+SpringMVC+Mybatis实现的手机销售后台管理系统源码.zipjavaweb课设基于SpringBoot+SpringMVC+Mybatis实现的手机销售后台管理系统源码.zipjavaweb课设基于SpringBoot+SpringMVC+Mybatis...

    图书管理系统SpringMvc+mybatis

    《图书管理系统SpringMvc+Mybatis实现详解》 在IT领域,构建高效、稳定的软件系统是至关重要的。本项目“图书管理系统”就是这样一个实例,它利用了SpringMvc和Mybatis两大主流框架,为图书管理提供了全面的解决...

    基于SpringMVC + MyBatis实现的小说系统.zip

    这是一款基于SpringMVC + MyBatis实现的小说系统, 目前只有wap端。 前端采用vue的框架cube-ui, 采用前后端分离的结构,系统中针对数据接口安全做了一定的限制, 很大程度上保证了数据的安全性。 这是一款基于...

    Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统.rar

    各类图表的展示(折线图,饼图,直方图等),使用了layui的弹出层、菜单、文件上传、富文本编辑、日历、选项卡、数据表格等 Oracle关系型数据库以及非关系型数据库(Redis),Oracle 性能调优(PL/SQL语言,SQL查询...

    shiro+ springMVC + Redis+mysql 实现 单点登录

    "Shiro+SpringMVC+Redis+MySQL实现单点登录"是一个典型的系统安全架构,它整合了多个技术组件来构建一个高效、可靠的单点登录(Single Sign-On, SSO)解决方案。以下是关于这个主题的详细知识点: 1. **Apache ...

    基于Spring+SpringMVC+Mybatis架构的博客系统.zip

    基于Spring+SpringMVC+Mybatis架构的博客系统:博客管理、图表数据、日志分析、访问记录、图库管理、资源管理、友链通知等。良好的页面预加载,无限滚动加载,文章置顶,博主推荐等。提供 用户端+管理端 的整套系统...

    Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统

    table(数据列表展示)+ Bootstrap-Export(各种报表导出SQL,Excel,pdf等)框架,整合Echars,各类图表的展示(折线图,饼图,直方图等),使用了layui的弹出层、菜单、文件上传、富文本编辑、日历、选项卡、数据...

    基于SpringMVC+Spring+MyBatis+Maven项目案例.zip

    基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis...

    SpringMVC+Mybatis实现权限管理

    1. **SpringMVC的角色**:在权限管理中,SpringMVC可以通过拦截器(Interceptor)实现对请求的预处理。拦截器可以在请求到达目标控制器之前执行某些操作,如检查用户登录状态、验证权限等。通过自定义拦截器,我们...

    Java项目框架-SpringMVC+Spring+Mybatis集成开发环境

    SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+...

    SpringBoot+SpringMVC+Freemarker实现单个上传和多个文件上传

    SpringBoot版本的SpringMVC+Freemarker上传案例,地址是localhost:8888/photo/index进入上传页面,默认是三个文件,自己可以屏蔽两个文件就是单个文件的状态了,首先在电脑的D盘新建一个upload的文件夹,...

    SpringMVC+HIbernate登录程序并进行增删改查

    2. **spring-servlet.xml**:SpringMVC的配置文件,包括视图解析器、数据源、事务管理器、Bean的定义等。 3. **hibernate.cfg.xml**:Hibernate的配置文件,包含了数据库连接信息和实体类的映射配置。 4. **实体类**...

    后台界面实时获取用户输入内容,springMVC+Ajax实现(源码)

    在本项目中,“后台界面实时获取用户输入内容,springMVC+Ajax实现(源码)”是一个典型的应用案例,它结合了SpringMVC框架与Ajax技术,使得后台能够即时响应用户的前端输入,无需每次提交都刷新整个页面。...

    基于SSM(Spring+SpringMVC+Mybatis)的新闻管理系统源码+数据库.zip

    基于SSM(Spring+SpringMVC+Mybatis)的新闻管理系统源码+数据库.zip 基于SSM(Spring+SpringMVC+Mybatis)的新闻管理系统源码+数据库.zip 基于SSM(Spring+SpringMVC+Mybatis)的新闻管理系统源码+数据库.zip 基于SSM...

Global site tag (gtag.js) - Google Analytics