⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filedaoimpl.java

📁 Java协同办公系统。实现公司内部的人事
💻 JAVA
字号:
package com.icss.oa.dao.impl;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FilenameUtils;

import com.icss.oa.base.BaseDAO;
import com.icss.oa.base.FileBase;
import com.icss.oa.base.impl.BaseDAOImpl;
import com.icss.oa.dao.FileDAO;
import com.icss.oa.service.FileService;
import com.icss.oa.utils.PageHelper;
import com.icss.oa.bean.FileVO;
import com.icss.oa.bean.UserSession;

public class FileDAOImpl extends FileService implements FileDAO{
	
	public void execute(HttpServletRequest request, HttpServletResponse response, String disk) {
		String actionCode=request.getParameter("actionCode");
		System.out.println(actionCode);
		if(actionCode.equals("getPersonalFile")){
			getFilesByUserId(request,response,disk);
		}else if(actionCode.equals("getShareFile")){
			getShareFile(request,response);
		}else if(actionCode.equals("addFile")){
			addFile(request,response,disk);
		}else if(actionCode.equals("delFile")){ 
			delFile(request,response,disk);
		}else if(actionCode.equals("renameFile")){
			renameFile(request,response,disk);
		}else if(actionCode.equals("upFile")){
			upFile(request,response,disk);
		}else if(actionCode.equals("downFile")){
			downFile(request,response,disk);
		}else if(actionCode.equals("shareFile")){
			shareFile(request,response);
		}else{
			
		}
	}
	//增加文件夹
	public void addFile(HttpServletRequest request, HttpServletResponse response, String disk) {
		HttpSession session=request.getSession();
		try {
			request.setCharacterEncoding("GBK");
		} catch (UnsupportedEncodingException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		UserSession user=(UserSession)session.getAttribute("usersession");
		int userId=user.getPersonId();
		String fileName=request.getParameter("foldName");
		String filePath=request.getParameter("path");
		try {
			fileName=new String(fileName.getBytes("ISO-8859-1"),"GBK");
			filePath=new String(filePath.getBytes("ISO-8859-1"),"GBK");
		} catch (UnsupportedEncodingException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		System.out.println(fileName+"  "+filePath);
		boolean flag;
		flag=addFile(userId,disk,filePath,fileName); 
		if(flag==false){
			request.setAttribute("message", "错误,该文件夹名已存在!");
		}
		String strCurPage 	= request.getParameter("currentPage");
		if(strCurPage==null){
			strCurPage="1";
		}
		try {
			request.getRequestDispatcher("file.do?actionCode=getPersonalFile&currentPage="+strCurPage).forward(request,response);
			//response.sendRedirect("getPersonalFile.do?currentPage="+strCurPage);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	//	删除文件
	public void delFile(HttpServletRequest request, HttpServletResponse response, String disk) {
		String realPath=request.getParameter("path");
		
		try {
			realPath = new String(realPath.getBytes("ISO-8859-1"),"GBK");
		} catch (UnsupportedEncodingException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} 
		
		HttpSession session=request.getSession();
		UserSession user=(UserSession)session.getAttribute("usersession");
		int userId=user.getPersonId();
		try {
			delFile(disk,realPath,userId);
		} catch (Exception e) {
			e.printStackTrace();
		}
		String strCurPage 	= request.getParameter("currentPage");
		if(strCurPage==null){
			strCurPage="1";
		}
		
		try {
			response.sendRedirect("file.do?actionCode=getPersonalFile&currentPage="+strCurPage);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
	//下载文件
	public void downFile(HttpServletRequest request, HttpServletResponse response, String disk) {
		BufferedInputStream bis = null;
		BufferedOutputStream bos = null;
		System.out.println(request.getRequestURI());
		try {
			String filePath = request.getParameter("filePath");
			filePath = new String(filePath.getBytes("iso-8859-1"), "gbk");
			String strCurPage 	= request.getParameter("currentPage");
			int currPage = (strCurPage == null) ? 1 : Integer.parseInt(strCurPage);
			File downFile=new File(disk+filePath);
			if(!downFile.exists()){
				request.setAttribute("message", "错误!该文件已不存在!");
				request.getRequestDispatcher("file.do?actionCode=getShareFile&currentPage="+currPage).forward(request,response);
				return;
			}
			String fileName=request.getParameter("fileName");
			fileName=new String(fileName.getBytes("iso-8859-1"),"gbk");
			response.setContentType("application/x-msdownload");
			response.setHeader("Content-disposition","attachment; filename="+ new String(fileName.getBytes("gb2312"),"iso-8859-1"));
			bis = new BufferedInputStream(new FileInputStream(disk+filePath));
			bos = new BufferedOutputStream(response.getOutputStream());
			byte[] buff = new byte[2048];
			int bytesRead;
			while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
				bos.write(buff, 0, bytesRead);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (bis != null)
				try {
					bis.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			if (bos != null)
				try {
					bos.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}
	}
	//取得当前用户的所有文件
	public void getFilesByUserId(HttpServletRequest request,HttpServletResponse response,String disk) {
		HttpSession session=request.getSession();
		String strCurPage 	= request.getParameter("currentPage");
        
		int pageSize 	= 10;
		int currPage = (strCurPage == null) ? 1 : Integer.parseInt(strCurPage);
		UserSession user=(UserSession)session.getAttribute("usersession");
		int userId=user.getPersonId();
		
		List filesList=getFilesByUserId(userId);
		if(filesList.size()==0){
			boolean flag;
			flag=addFile(userId,disk,"/",Integer.toString(userId));
			if(flag){
				try {
					response.sendRedirect("file.do?actionCode=getPersonalFile");
					return;
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		PageHelper pageHelper=pageList(filesList, currPage, pageSize);
		
		//判定是否为空
		request.setAttribute("pageHelper",pageHelper);
		try {
			request.getRequestDispatcher("./user/myfold.jsp").forward(request, response);
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	//按条件取得共享文件
	public void getShareFile(HttpServletRequest request,HttpServletResponse response) {
		String deptNOStr=request.getParameter("deptNO");
		int deptNO=0;
		if(deptNOStr!=null){
			deptNO=Integer.parseInt(deptNOStr);
		}
		String personIdStr=request.getParameter("personId");
		int personId=0;
		if(personIdStr!=null){
			personId=Integer.parseInt(personIdStr);
		}
		String sqlStrDept="select * from dept";
		List deptsList=FileBase.queryAllObject(sqlStrDept);
		request.setAttribute("deptsList", deptsList);
		request.setAttribute("deptSelected",deptNO);
		String sqlStrUser="select * from person";
		String sqlStrFile="select * from t_file,person where t_file.personid=person.personid and t_file.isshare=1 and t_file.isfile=1";
		if(deptNO!=0){
			sqlStrUser=sqlStrUser+" where deptno="+deptNO;;
			sqlStrFile=sqlStrFile+" and person.deptno="+deptNO;
		}
		if(personId!=0){
			sqlStrFile=sqlStrFile+" and t_file.personid="+personId;
		}
		List personsList=FileBase.queryAllObject(sqlStrUser);
		request.setAttribute("personsList", personsList);
		request.setAttribute("personSelected", personId);
		List filesList=FileBase.queryAllObject(sqlStrFile);
		String strCurPage 	= request.getParameter("currentPage");
        System.out.println("deptSize:"+deptsList.size()+"  personSize:"+personsList.size());
		int pageSize 	= 10;
		int currPage = (strCurPage == null) ? 1 : Integer.parseInt(strCurPage);
		if(filesList.size()!=0){
			PageHelper pageHelper=pageList(filesList, currPage, pageSize);
			request.setAttribute("pageHelper",pageHelper);
		}else{
			request.setAttribute("message", "没有共享的文件");
		}

		try {
			request.getRequestDispatcher("./user/sharefile.jsp").forward(request,response);
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	//重命名文件或文件夹
	public void renameFile(HttpServletRequest request, HttpServletResponse response, String disk) {
		String strCurPage = request.getParameter("currentPage");
		if(strCurPage==null||strCurPage.equals("")){
			strCurPage="1";
		}
		System.out.println("currentPage:"+strCurPage);
		String newFileName=request.getParameter("newFileName");
		try {
			newFileName=new String(newFileName.getBytes("iso-8859-1"), "gbk");
		} catch (UnsupportedEncodingException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		//String filePath=request.getParameter("filePath");
		int fileId=Integer.parseInt(request.getParameter("fileId"));
		boolean flag=renameFile(fileId,newFileName,disk);
		if(flag==false){
			request.setAttribute("message", "错误!该文件或文件夹名已存在!");
		}
		try {
			request.getRequestDispatcher("file.do?actionCode=getPersonalFile&currentPage="+strCurPage).forward(request,response);
			//response.sendRedirect("getPersonalFile.do?currentPage="+strCurPage);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
	}
	//共享或取消文件
	public void shareFile(HttpServletRequest request, HttpServletResponse response) {
		String filePath=request.getParameter("filePath");
		try {
			filePath=new String(filePath.getBytes("iso-8859-1"), "gbk");
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		int isShare=Integer.parseInt(request.getParameter("isShare"));
		if(isShare==1){
			isShare=0;
		}else{
			isShare=1;
		}
		shareFile(filePath,isShare);
		String strCurPage = request.getParameter("currentPage");
		if(strCurPage==null||strCurPage.equals("")){
			strCurPage="1";
		}
		try {
			response.sendRedirect("file.do?actionCode=getPersonalFile&currentPage="+strCurPage);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void upFile(HttpServletRequest request, HttpServletResponse response,String disk) {
		boolean flag=super.upFile(request, disk);
		System.out.println(flag);
		if(flag==false){
			request.setAttribute("message", "错误!该文件已存在!");
		}
		String strCurPage = request.getParameter("currentPage");
		System.out.println(strCurPage);
		if(strCurPage==null){
			strCurPage="1";
		}
		try {
			request.getRequestDispatcher("file.do?actionCode=getPersonalFile&currentPage="+strCurPage).forward(request,response);
			//response.sendRedirect("getPersonalFile.do?currentPage="+strCurPage);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	

	
}
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -