📄 fileaction.java
字号:
package org.HumResManSys.action;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.HumResManSys.factory.ServiceFactory;
import org.HumResManSys.util.ExcelTools;
import org.HumResManSys.util.WordTools;
import org.HumResManSys.vo.Employee;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.Category;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
public class FileAction extends DispatchAction {
private ServiceFactory serviceFactory;
Log log=LogFactory.getLog(EmployeeAction.class);//log.debug
//从word导入员工信息
public ActionForward addEmployeeFromWord(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
String path=null;
String fileName=null;
System.out.println("从word导入员工信息");
try {
Map values=initResourceFileUpload();
if(values==null){
return mapping.findForward("YGadminFail");
}
ServletFileUpload servletFileUpload=(ServletFileUpload)values.get("servletFileUpload");
System.out.println("servletFileUpload:"+servletFileUpload);
path=(String)values.get("path");
System.out.println("上传路径:"+path);
//获取表单中的各个项
List items=servletFileUpload.parseRequest(request);
System.out.println("size:"+items.size());
Iterator iterator = items.iterator();
//遍历
while (iterator.hasNext()){
System.out.println("遍历");
//获取某一个表单域
//临时存放表单中的某一项
FileItem item = (FileItem) iterator.next();
//如果是文件域,则上传文件
if(!item.isFormField()){
System.out.println("是文件域");
if(item.getSize()==0){
System.out.println("文件大小为0");
return mapping.findForward("YGadminFail");
}
fileName=path+String.valueOf(System.currentTimeMillis())+".doc";
System.out.println("文件名:"+fileName);
FileOutputStream fileOutputStream=new FileOutputStream(fileName);
if(item.isInMemory()){//如果上传文件域对应的文件已经在内存中
fileOutputStream.write(item.get());
}else{//如果文件内容不完全在内存中
InputStream inputStream=item.getInputStream();
byte[] buffer=new byte[1024];
int length;
while((length=inputStream.read(buffer)) >0 ){
fileOutputStream.write(buffer, 0, length);
}
inputStream.close();
fileOutputStream.close();
}
}else{//如果不是文件域,则是普通的表单内容
System.out.println("不是文件域");
}
}
WordTools wt=new WordTools(fileName);
List<String> conditions=new ArrayList();
conditions.add("姓名:[ A-Za-z0-9\u4e00-\u9fa5]+");
conditions.add("性别:[ A-Za-z0-9\u4e00-\u9fa5]+");
conditions.add("出生年月:[ ,,.。A-Za-z0-9\u4e00-\u9fa5]+");
conditions.add("身份证号:[ A-Za-z0-9\u4e00-\u9fa5]+");
conditions.add("部门名称:[ A-Za-z0-9\u4e00-\u9fa5]+");
conditions.add("职位:[ A-Za-z0-9\u4e00-\u9fa5]+");
List<String[]> results=wt.getInfo(conditions);
//System.out.println("conditions.size() : "+conditions.size());
int conditionsSize=conditions.size();
for(int j=0;j<results.get(0).length;j++){
Employee emp=new Employee();
//for(int i=0;i<conditionsSize;i++){//显示一个员工的数据
if(results.get(0)[j]!=null){
List<Employee> list=serviceFactory.getEmployeeService().queryEmpsByOneCondition("emp_name", results.get(0)[j]);
//不能用已经存在的姓名来增加员工记录
if(list.size()!=0){
//log.debug(list.size());
//return mapping.findForward("YGadminFail");
continue;
}
emp.setEmp_name(results.get(0)[j]);
emp.setSex(results.get(1)[j]);
emp.setBirthday(results.get(2)[j]);
emp.setId_card(results.get(3)[j]);
emp.setDept_name(results.get(4)[j]);
emp.setJob(results.get(5)[j]);
emp.setPsw("123456");
emp.setHire_date(new SimpleDateFormat("yy,MM,dd").format(new Date(System.currentTimeMillis())));
System.out.println(emp.getEmp_name());
System.out.println(emp.getSex());
System.out.println(emp.getBirthday());
System.out.println(emp.getId_card());
System.out.println(emp.getDept_name());
System.out.println(emp.getJob());
System.out.println(emp.getHire_date());
this.getServiceFactory().getEmployeeService().addEmployee(emp);
}
//System.out.println(new SimpleDateFormat("yy-MM-dd").format(new Date(System.currentTimeMillis())));
//
//}
}
/* for(String[] s:results){
for(int i=0;i<s.length;i++){
if(s[i]!=null){
System.out.println("结果"+i+":"+s[i]);
}else{}
}
}*/
request.setAttribute("dest", "EmployeeAction.do?method=displayEmployees");
return mapping.findForward("jump");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return mapping.findForward("YGadminFail");
}
}
// 从excel导入员工信息
public ActionForward addEmployeeFromExcel(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
String path=null;
String fileName=null;
System.out.println("从excel导入员工信息");
try {
Map values=initResourceFileUpload();
if(values==null){
return mapping.findForward("YGadminFail");
}
ServletFileUpload servletFileUpload=(ServletFileUpload)values.get("servletFileUpload");
System.out.println("servletFileUpload:"+servletFileUpload);
path=(String)values.get("path");
System.out.println("上传路径:"+path);
//获取表单中的各个项
List items=servletFileUpload.parseRequest(request);
System.out.println("size:"+items.size());
Iterator iterator = items.iterator();
//遍历
while (iterator.hasNext()){
System.out.println("遍历");
//获取某一个表单域
//临时存放表单中的某一项
FileItem item = (FileItem) iterator.next();
//如果是文件域,则上传文件
if(!item.isFormField()){
System.out.println("是文件域");
if(item.getSize()==0){
System.out.println("文件大小为0");
return mapping.findForward("YGadminFail");
}
fileName=path+String.valueOf(System.currentTimeMillis())+".xls";
System.out.println("文件名:"+fileName);
FileOutputStream fileOutputStream=new FileOutputStream(fileName);
if(item.isInMemory()){//如果上传文件域对应的文件已经在内存中
fileOutputStream.write(item.get());
}else{//如果文件内容不完全在内存中
InputStream inputStream=item.getInputStream();
byte[] buffer=new byte[1024];
int length;
while((length=inputStream.read(buffer)) >0 ){
fileOutputStream.write(buffer, 0, length);
}
inputStream.close();
fileOutputStream.close();
}
}else{//如果不是文件域,则是普通的表单内容
System.out.println("不是文件域");
}
}
ExcelTools et=new ExcelTools(fileName,false);
String [][]results=et.readFromExcelByPage(0,50,false);
for(int i=0;i<results.length;i++){
if(results[i][0]!=null){
Employee emp=new Employee();
emp.setEmp_name(results[i][0]);
emp.setSex(results[i][1]);
emp.setBirthday(results[i][2]);
emp.setId_card(results[i][3]);
emp.setDept_name(results[i][4]);
emp.setJob(results[i][5]);
emp.setPsw("123456");
emp.setHire_date(new SimpleDateFormat("yy,MM,dd").format(new Date(System.currentTimeMillis())));
this.getServiceFactory().getEmployeeService().addEmployee(emp);
System.out.println(emp.getEmp_name());
System.out.println(emp.getSex());
System.out.println(emp.getBirthday());
System.out.println(emp.getId_card());
System.out.println(emp.getDept_name());
System.out.println(emp.getJob());
System.out.println(emp.getHire_date());
}
/* for(int j=0;j<results[0].length;j++){
if(results[i][j]!=null){
System.out.println(results[i][j]);
}
}*/
}
request.setAttribute("dest", "EmployeeAction.do?method=displayEmployees");
return mapping.findForward("jump");
//return null;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return mapping.findForward("YGadminFail");
}
}
private Map initResourceFileUpload(){
try {
Map returnValues=new TreeMap();
//Calendar calendar = Calendar.getInstance(); //
//指定上传路径
String path=servlet.getServletContext().getRealPath("/uploads")+"\\";
returnValues.put("path", path);
DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory();
//设置上传工厂限制
diskFileItemFactory.setSizeThreshold(1024*1024*3);
//设置临时目录
diskFileItemFactory.setRepository(new File(path));
ServletFileUpload servletFileUpload=new ServletFileUpload(diskFileItemFactory);
//设置允许上传的文件最大值
servletFileUpload.setFileSizeMax(1024*1024*2);
//设置表单提交的数据最大值
servletFileUpload.setSizeMax(1024*1024*3);
returnValues.put("servletFileUpload", servletFileUpload);
return returnValues;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
//ajax获取所有员工的名字
public ActionForward getEmployeeNames(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
try {
response.setContentType("text/html;charset=gb2312");//设置编码方式
PrintWriter out = response.getWriter();
List<Employee> cat=getServiceFactory().getEmployeeService().showAllEmployees();
//System.out.println("原始数据:"+cat.toString());
if(cat==null){
System.out.println("没有数据");
out.write("0");
}else{
Employee c=null;
String emps="";
for(int i=0;i<cat.size();i++){
c=(Employee)cat.get(i);
emps=emps+c.getEmp_name()+"$$$$";
System.out.println("员工名字数据:"+c.getEmp_name());
}
//System.out.println(newsTypes);
emps=emps.substring(0, emps.length()-4);
//System.out.println(newsTypes);
out.write(emps);
}
return null;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public ServiceFactory getServiceFactory() {
return serviceFactory;
}
public void setServiceFactory(ServiceFactory serviceFactory) {
this.serviceFactory = serviceFactory;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -