📄 filedaoimpl.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¤tPage="+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¤tPage="+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¤tPage="+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¤tPage="+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¤tPage="+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¤tPage="+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 + -