fileupload 上传execl文件的一些操作
package com.dadi.oa.web.action;import java.io.File;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUpload;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.apache.commons.fileupload.servlet.ServletRequestContext;import org.apache.commons.io.FilenameUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.springframework.web.context.WebApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;import com.dadi.oa.pojo.Users;import com.dadi.oa.service.ReadExeclDataService;import com.dadi.oa.system.ConstantsUtil;import com.dadi.oa.util.RequestUtil;import com.dadi.oa.util.StringUtil;import com.dadi.oa.util.UploadUtil;/*** 读取execl action基类,处理一些通用操作* @author ao.ouyang**/public class OABaseReadExeclDataAction extends OABaseAction {private Log logger = LogFactory.getLog(this.getClass());protected ReadExeclDataService readExeclDataService;//默认读取execl的临时目录protected String tempReadExeclDir;//封装了form表单属性的集合protected Map<String,String> formFieldItems;protected File readExeclFile;private File tempDirectoryFile;public void setReadExeclDataService(ReadExeclDataService readExeclDataService) {this.readExeclDataService = readExeclDataService;}public void setTempReadExeclDir(String tempReadExeclDir) {this.tempReadExeclDir = tempReadExeclDir;}/*** 初始化临时文件目录*/public void initDir(){formFieldItems = new HashMap<String, String>();String nativeWebAppFoldPath =((WebApplicationContext)ConstantsUtil.beanFactory).getServletContext().getRealPath("/");tempDirectoryFile = new File(nativeWebAppFoldPath + tempReadExeclDir);// 文件夹不存在就自动创建if (!tempDirectoryFile.isDirectory()) {tempDirectoryFile.mkdirs();}}@Overrideprotected ActionForward dispatchMethod(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response, String name) throws Exception {// TODO Auto-generated method stubString resultStr=processFileUpload(request);if(!resultStr.equalsIgnoreCase("success")){request.setAttribute("info",resultStr);request.setAttribute("closepage", "yes");return mapping.findForward("oapromptinfo");}return super.dispatchMethod(mapping, form, request, response, name);}/*** 处理请求文件* @param request* @return*/public String processFileUpload(HttpServletRequest request) throws Exception {String resultStr = "success";try {if(!FileUpload.isMultipartContent(new ServletRequestContext(request))){throw new Exception("操作异常,请重新再试!!!");}ServletFileUpload fileUpload = UploadUtil.getFileUploadObject(10);List fileItems = null;FileItem readItem = null;fileItems = fileUpload.parseRequest(request);for (Iterator it = fileItems.iterator(); it.hasNext();) {FileItem item = (FileItem) it.next();if (!item.isFormField()) {readItem = item;}else{formFieldItems.put(item.getFieldName(),item.getString("UTF-8"));}}//校验文件checkExecl(readItem);try {readExeclFile = new File(tempDirectoryFile.getAbsolutePath(), readItem.getName().substring(readItem.getName().lastIndexOf("\\")+1));readItem.write(readExeclFile);readItem.delete();} catch (Exception e) {e.printStackTrace();throw new Exception("文件转换异常,请检查!!!");}} catch (Exception e) {e.printStackTrace();resultStr=e.getMessage();logger.info("================ERROR:OABaseReadExeclDataAction.executeSub()"+e.getMessage());}return resultStr;}/*** 校验文件* @throws Exception*/private void checkExecl(FileItem readItem) throws Exception{logger.info("==========OABaseReadExeclDataAction.checkExecl() begin===========");String inputFileName = readItem.getName();long inputFileSize = readItem.getSize();if(StringUtil.isEmptyString(inputFileName)){throw new Exception("系统找不到文件,请确定文件路径!!!");}if(!(inputFileSize > 0)){throw new Exception("系统找不到文件或文件没有内容!!!");}String inputFileExtension = FilenameUtils.getExtension(inputFileName).toLowerCase();if("".equalsIgnoreCase(inputFileExtension)){throw new Exception("文件无后缀名,请选择正确的文件上传!!!");}if("xls,xlsx".indexOf(inputFileExtension)<0){throw new Exception("请上传execl文档格式,格式如:xls,xlxs;请选择正确的文件上传!!!");}logger.info("===========OABaseReadExeclDataAction.checkExecl() end===========");}}
fileupload 上传execl文件的一些操作的更多相关文章
- asp.net fileupload上传大文件时提示404.13错误
IIS 7 默认文件上传大小时30M 要突破这个限制,需要做如下操作: 1. 修改IIS的applicationhost.config 打开 %windir%\system32\inetsrv ...
- 解决FileUpload上传大文件报错
<system.webServer> <security> <requestFiltering> <requestLimits maxAllowedConte ...
- 解决Cornerstone不能上传.a文件的问题 Cornerstone不上传*.xcuserstate,*.xcbkptlist文件
在使用CornerStone的时候经常会出现.a文件无法上传的问题,导致从svn checkout到本地的时候编译报错 这里可以通过配置CornerStone来达到上传.a文件的效果 操作步骤: 打开 ...
- centos/redhat命令行上传下载文件
前言:客户端上没有安装xftp,winscp等等软件,无法将服务器上需要的文件下载到本地去解析,无法将本地的安装包上传到服务器上去,这个时候命令行就可以带你翱翔一波 配置如下: 服务器上: 1.安装需 ...
- FileUpload 上传文件,并实现c#使用Renci.SshNet.dll实现SFTP文件传输
fileupload上传文件和jquery的uplodify控件使用方法类似,对服务器控件不是很熟悉,记录一下. 主要是记录新接触的sftp文件上传.服务器环境下使用freesshd搭建好环境后,wi ...
- Webform之FileUpload(上传按钮控件)简单介绍及下载、上传文件时图片预览
1.FileUpload上传控件:(原文:http://www.cnblogs.com/hide0511/archive/2006/09/24/513201.html) FileUpload 控件显示 ...
- PHP文件上传和文件操作案例
<?php /* *文件配置变量$dirname是目录名称 */ session_start(); $dirname = 'upload'; $fileClass = new fileClass ...
- .NET FileUpLoad上传文件
一.上传扫描件到服务器,自定义创建文件夹(如果存在该文件夹,则无需创建),并判断格式以及文件大小进行保存: 首先创建一个保存按钮事件: protected void btnSave_Click(obj ...
- SFTP上传下载文件、文件夹常用操作
SFTP上传下载文件.文件夹常用操作 1.查看上传下载目录lpwd 2.改变上传和下载的目录(例如D盘):lcd d:/ 3.查看当前路径pwd 4.下载文件(例如我要将服务器上tomcat的日志文 ...
随机推荐
- 错误:google-chrome-stable-44.0.2403.157-1.x86_64.rpm 的公钥没有安装
错误:google-chrome-stable-44.0.2403.157-1.x86_64.rpm 的公钥没有安装 Fedora22 系统更新软件包.出现: warning: /var/cache/ ...
- oracle卸载清除注册表(彻底卸载)
用Oracle自带的卸载程序不能从根本上卸载Oracle,从而为下次的安装留下隐患,那么怎么才能完全卸载Oracle呢? 那就是直接注册表清除,步骤如下: . 开始->设置->控制面板-& ...
- 修改Cygwin的默认启动路径
原先启动Cygwin后,pwd显示: C:\Documents and Settings\Administrator@IBM-EBDC0EAC4B7 ~$ pwdC:\Documents and Se ...
- 如何在网上隐藏自己的IP地址(转)
摘自:http://net.yesky.com/396/3082396.shtml 在某些场合(例如论坛发贴时)有些网友希望能隐藏自己的IP地址,以免IP被记下,为安全起见,QQ聊天时也不希望别人知道 ...
- AbatorForEclipse插件使用总结
AbatorForEclipse是IbatorForEclipse之前的一个老版插件.插件装好后,我们来使用看看:1,新建一个工程AbatorTest,点击右键,新建一个abatorConfig.xm ...
- HDUOJ----(1084)What Is Your Grade?
关键是自己没有读懂题目而已,不过还好,终于给做出来了...... What Is Your Grade? Time Limit: 2000/1000 MS (Java/Others) Memor ...
- python中如何对list之间求交集,并集和差集
最近遇到一个从list a里面去除list b的元素的问题,由于a很大,b也不小.所以遇到点困难,现在mark一下. 先说最简单的方法: a = [1, 2, 3, 4, 5, 6, 7, 8, 9, ...
- 堆 C语言实现
1.基本概念 堆分为小根堆和大根堆,对于一个小根堆,它是具有如下特性的一棵完全二叉树: (1)若树根结点存在左孩子或右孩子,则根结点的值(或某个域的值)小于等于左右孩子结点的值(或某个域的值) (2) ...
- linux 浏览查看文件more,less,head,tail,cat,tac,od,nl命令使用简介
参考:linux 基本命令详解 cat,tac,nl,more,less,head,tail,od 命令more,less,head,tail,cat,tac,od,nl等是是使用Linux系统常用的 ...
- Android学习系列(18)--App工程结构搭建
本文算是一篇漫谈,谈一谈关于Android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构. 关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的 ...