UserFileAction.java
上传用户:lm2018
上传日期:2015-12-12
资源大小:30449k
文件大小:9k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. //Created by MyEclipse Struts
  2. // XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.0/xslt/JavaClass.xsl
  3. package com.oa.module.folder.action;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileOutputStream;
  8. import java.io.IOException;
  9. import java.io.InputStream;
  10. import java.io.OutputStream;
  11. import java.io.PrintWriter;
  12. import java.util.List;
  13. import javax.servlet.http.HttpServletRequest;
  14. import javax.servlet.http.HttpServletResponse;
  15. import javax.servlet.http.HttpSession;
  16. import org.apache.struts.action.ActionForm;
  17. import org.apache.struts.action.ActionForward;
  18. import org.apache.struts.action.ActionMapping;
  19. import org.apache.struts.actions.DispatchAction;
  20. import org.apache.struts.upload.FormFile;
  21. import com.oa.module.folder.bean.FileBean;
  22. import com.oa.module.folder.bean.FolderBean;
  23. import com.oa.module.folder.dao.FileDao;
  24. import com.oa.module.folder.dao.FolderDao;
  25. import com.oa.module.folder.form.FileForm;
  26. import com.oa.module.office.user.Tuser;
  27. import com.oa.util.PubUtil;
  28. /**
  29.  * MyEclipse Struts Creation date: 01-28-2008
  30.  * 
  31.  * XDoclet definition:
  32.  * 
  33.  * @struts.action path="/userFile" name="fileForm" parameter="method"
  34.  *                scope="request" validate="true"
  35.  */
  36. public class UserFileAction extends DispatchAction {
  37. // --------------------------------------------------------- Instance
  38. // Variables
  39. private FileDao dao;
  40. private FolderDao folderdao;
  41. public FolderDao getFolderdao() {
  42. return folderdao;
  43. }
  44. public void setFolderdao(FolderDao folderdao) {
  45. this.folderdao = folderdao;
  46. }
  47. /**
  48.  * 进入文件夹
  49.  * 
  50.  * @param mppaing
  51.  * @param form
  52.  * @param request
  53.  * @param response
  54.  */
  55. public ActionForward enterForder(ActionMapping mapping, ActionForm form,
  56. HttpServletRequest request, HttpServletResponse response) {
  57. FileForm fileForm = (FileForm) form;
  58. String id = fileForm.getForderid();
  59. List list = dao.getFileListByForderId(id);
  60. HttpSession session = request.getSession();
  61. Tuser user = (Tuser)session.getAttribute("user");
  62. List forderList = folderdao.getUserFolder(user.getUno());
  63. request.setAttribute("myfileList", list);
  64. request.setAttribute("userforderList", forderList);
  65. return mapping.findForward("myfileList");
  66. }
  67. /**
  68.  * 上传文件
  69.  * 
  70.  * @param mapping
  71.  * @param form
  72.  * @param request
  73.  * @param response
  74.  * @return
  75.  */
  76. public ActionForward uploadfile(ActionMapping mapping, ActionForm form,
  77. HttpServletRequest request, HttpServletResponse response) {
  78. FileForm fileForm = (FileForm) form;
  79. FormFile formfile = fileForm.getFormfile();
  80. FileBean filebean = new FileBean();
  81. filebean.setForderid(fileForm.getForderid());
  82. boolean flag = false;
  83. int size = formfile.getFileSize();
  84. if ( size > 0) {
  85.  size = formfile.getFileSize();
  86. if(size > 5 * 1024 * 1024) {
  87. try {
  88. PrintWriter out = response.getWriter();
  89. out.print("<script>");
  90. out.print("alert('文件不能大于5M');");
  91. out.print("history.back();");
  92. out.print("</script>");
  93. return null;
  94. } catch (IOException e) {
  95. // TODO 自动生成 catch 块
  96. e.printStackTrace();
  97. }
  98. }
  99. filebean.setFilesize(size+"");
  100. FolderBean bean = folderdao.getForderByForderId(fileForm.getForderid());
  101.  
  102. String filename = formfile.getFileName();
  103. filebean.setFilename(filename);
  104. HttpSession session = request.getSession();
  105. Tuser user = (Tuser) session.getAttribute("user");
  106. String path = session.getServletContext().getRealPath("");
  107. path = path.replace('\', '/');
  108. String filepath = "/forder/"+user.getUname() + "," + user.getUno()+ "/"+bean.getFordername();
  109. String realpath = path+filepath+"/"+filename;
  110. filebean.setRealpath(filepath);
  111. try {
  112. InputStream input = formfile.getInputStream();
  113. OutputStream output = new FileOutputStream(realpath);
  114. byte[] b = new byte[1024];
  115. int i = 0; 
  116. while(  (i=input.read(b, 0, b.length )) != -1 ){
  117. output.write(b, 0, i);
  118. }
  119. output.close();
  120. output.close();
  121. input.close();
  122. } catch (FileNotFoundException e) {
  123. // TODO 自动生成 catch 块
  124. e.printStackTrace();
  125. } catch (IOException e) {
  126. // TODO 自动生成 catch 块
  127. e.printStackTrace();
  128. }
  129. filebean.setAddtime(PubUtil.getNowDate());
  130. flag = dao.addFile(filebean);
  131. }else{
  132. PrintWriter out;
  133. try {
  134. out = response.getWriter();
  135. out.print("<script>");
  136. out.print("alert('文件不存在');");
  137. out.print("history.back();");
  138. out.print("</script>");
  139. return null;
  140. } catch (IOException e) {
  141. // TODO 自动生成 catch 块
  142. e.printStackTrace();
  143. }
  144. }
  145. if(flag ==true){
  146. //成功
  147. request.setAttribute("task","addfilesuc");
  148. return mapping.findForward("suc");
  149. }else{
  150. request.setAttribute("task","addfileerror");
  151. return mapping.findForward("error");
  152. }
  153. }
  154. /**
  155.  * 删除文件
  156.  * @param mapping
  157.  * @param form
  158.  * @param request
  159.  * @param response
  160.  * @return
  161.  */
  162. public ActionForward delfile(ActionMapping mapping, ActionForm form,
  163. HttpServletRequest request, HttpServletResponse response) {
  164. FileForm fileForm = (FileForm) form;
  165. String id = fileForm.getFileid();
  166. //获得数据以便删除文件
  167. FileBean bean = dao.getFileById(id);
  168. //从数据库删除
  169. boolean flag = dao.delFileById(id);
  170. String path = this.getServlet().getServletContext().getRealPath("");
  171. path = path.replace('\', '/');
  172. if(flag ==true){
  173. //成功
  174. String systempath = bean.getRealpath();
  175. path += systempath;
  176. File file = new File(path+"/"+bean.getFilename());
  177. file.delete();
  178. request.setAttribute("task","delfilesuc");
  179. return mapping.findForward("suc");
  180. }else{
  181. request.setAttribute("task","delfileerror");
  182. return mapping.findForward("error");
  183. }
  184. }
  185. /**
  186.  * 移动文件
  187.  * @param mapping
  188.  * @param form
  189.  * @param request
  190.  * @param response
  191.  * @return
  192.  */
  193. public ActionForward moveto(ActionMapping mapping, ActionForm form,
  194. HttpServletRequest request, HttpServletResponse response) {
  195. FileForm fileForm = (FileForm) form;
  196. String forderid = fileForm.getForderid();
  197. String fileid = fileForm.getFileid();
  198. String movetofiledid = request.getParameter("movetofiledid");
  199. //要用到的地方
  200. FolderBean movetoforderbean = folderdao.getForderByForderId(movetofiledid);
  201. String path = this.getServlet().getServletContext().getRealPath(""); //d:webroot
  202. path = path.replace('\','/');
  203. //原来的
  204. FolderBean forderbean = folderdao.getForderByForderId(forderid);
  205. FileBean filebean = dao.getFileById(fileid);
  206. String filename = filebean.getFilename();  //aa.txt
  207. String realname = forderbean.getFordername();  //asdf
  208. //旧文件路径
  209.  String oldfilepath = path+filebean.getRealpath()+"/"+filename;
  210. //新文件路径
  211.  HttpSession session = request.getSession();
  212.  Tuser user = (Tuser)session.getAttribute("user");
  213.  
  214.  String newfilepath = path+"/forder/"+user.getUname()+","+user.getUno()+"/"+movetoforderbean.getFordername()+"/"+filename;
  215.  System.out.println("newfilepath:"+newfilepath);
  216.  System.out.println("oldfilepath:"+oldfilepath);
  217.  
  218.  InputStream input = null;
  219.  OutputStream output = null;
  220.  boolean flag = false;
  221.  try {
  222.  
  223.  input = new FileInputStream(oldfilepath);
  224.  output = new FileOutputStream(newfilepath);
  225. byte[] b = new byte[1024];
  226. int i = 0;
  227.  
  228. while( (i= input.read(b, 0 , b.length)) != -1){
  229. System.out.println(i);
  230. output.write(b, 0, i);
  231. }
  232. output.flush();
  233. output.close();
  234. boolean t = false;
  235. try {
  236. File file = new File(oldfilepath);
  237. t=file.delete();
  238. System.out.println(t);
  239. } catch (Exception e) {
  240. // TODO: handle exception
  241. e.printStackTrace();
  242. }
  243. //数据库操作
  244. filebean.setForderid(movetofiledid);
  245. filebean.setRealpath("/forder/"+user.getUname()+","+user.getUno()+"/"+movetoforderbean.getFordername()+"/"+filename);
  246. flag =dao.addFile(filebean);
  247. flag =dao.delFileById(fileid);
  248. } catch (FileNotFoundException e) {
  249. // TODO 自动生成 catch 块
  250. e.printStackTrace();
  251. } catch (IOException e) {
  252. // TODO 自动生成 catch 块
  253. e.printStackTrace();
  254. }finally{
  255. try {
  256. input.close();
  257. output.close();
  258. } catch (IOException e) {
  259. // TODO 自动生成 catch 块
  260. e.printStackTrace();
  261. }
  262. }
  263.  
  264. if(flag ==true){
  265. //成功
  266. request.setAttribute("task","movefilesuc");
  267. return mapping.findForward("suc");
  268. }else{
  269. request.setAttribute("task","movefileerror");
  270. return mapping.findForward("error");
  271. }
  272. }
  273. public FileDao getDao() {
  274. return dao;
  275. }
  276. public void setDao(FileDao dao) {
  277. this.dao = dao;
  278. }
  279. }