- 浏览: 43322 次
- 性别:
- 来自: 邵阳
文章分类
最新评论
-
zeng7960983:
shao_lixin 写道正在学习jbpm,苦于不知道从何下手 ...
jbpm4.4 学习分享 -
shao_lixin:
正在学习jbpm,苦于不知道从何下手呢。谢谢分享
jbpm4.4 学习分享 -
zeng7960983:
zhubo123 写道你好. setProgressListe ...
java ajax 上传 加进度条 -
zhubo123:
你好. setProgressListener()这个方法为什 ...
java ajax 上传 加进度条 -
luyao123127:
求楼组源码 hello_software@126.com ...
jquery zTree树形菜单的使用
package com.dynastarter.sc.file.action;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springside.modules.orm.Page;
import org.springside.modules.security.springsecurity.SpringSecurityUtils;
import com.dynastarter.sc.file.baseaction.BaseAction;
import com.dynastarter.sc.file.po.FileManager;
import com.dynastarter.sc.file.po.HistoryManager;
import com.dynastarter.sc.file.po.User;
import com.dynastarter.sc.file.service.FileManagerService;
import com.dynastarter.sc.file.service.HistoryManagerService;
import com.dynastarter.sc.file.service.UserService;
@Controller
@Scope("prototype")
public class DocumentManagerAction extends BaseAction{
public DocumentManagerAction(){
System.out.println("DocumentManagerAction======>");
}
private final int BUFFER_SIZE = 16 * 1024 ;
private int id;
private File file; //上传文件
private String fileFileName; //上传文件�
private String fileContentType; //文件类型
private int parentId;
private String downFileName;
private Page<FileManager> page=new Page<FileManager>();
@Autowired
FileManagerService fileManagerService;
@Autowired
UserService userSerivce;
@Autowired
HistoryManagerService historyService;
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
/**
* 创建目录
* @return
*/
public String createDirectory() throws Exception{
String filePath=getRequest().getRealPath("/");
String parentPath=fileManagerService.getFileManager(new Long(parentId)).getFilename();
//创建目录
fileFileName=java.net.URLDecoder.decode(fileFileName, "UTF-8"); //将js代码中的编码的过的参数解码
File myFilePath = new File(filePath+"/"+parentPath,fileFileName);
if(!myFilePath.exists())
{
//创建该目录
myFilePath.mkdirs();
//保存数据库
FileManager fileManager=new FileManager();
fileManager.setFilename(fileFileName);
fileManager.setFileContentType("directory");
fileManager.setFileSize(0);
fileManager.setParentDirectory(parentId);
fileManager.setUploadTime(new Date());
fileManager.setIsDirectory(true);
fileManager.setIsFile(false);
//
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
if(user!=null){
fileManager.setUser(user);
}
else{
user=userSerivce.getUser(new Long(1));
fileManager.setUser(user);
}
fileManagerService.save(fileManager);
HistoryManager history=new HistoryManager();
history.setFileName(fileFileName);
history.setFileLength(0);
history.setFileType("目录");
history.setOpetionType("创建目录");
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
getResponse().setContentType("json;charset=UTF-8");
StringBuffer sb=new StringBuffer("{");
sb.append("'id':"+fileManager.getId()+",'status':'success'");
sb.append("}");
getResponse().getWriter().write(sb.toString());
}
else{
getResponse().setContentType("json;charset=UTF-8");
getResponse().getWriter().write("{'status':'allReady'}");
}
return null;
}
public void copy(File src, File dst) {
try {
InputStream in = null ;
OutputStream out = null ;
try {
in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
byte [] buffer = new byte [BUFFER_SIZE];
while (in.read(buffer) > 0 ) {
out.write(buffer);
}
out.flush();
} finally {
if ( null != in) {
in.close();
}
if ( null != out) {
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 批量删除
* @return
*/
public String modelDelete(){
return null;
}
/**
* 上传文件
* @return
*/
public String upLoadFile() throws Exception{
try {
List<String> list=new ArrayList<String>();
list.add("txt");
list.add("jpg");
list.add("png");
list.add("gif");
list.add("doc");
list.add("rar");
list.add("xls");
list.add("zip");
String tagDirectory = getRequest().getRealPath("/");
FileManager parentFileManager=fileManagerService.getFileManager(new Long(parentId));
FileManager rootFileManager=fileManagerService.getFileManager(new Long(1));
File target = new File(tagDirectory+"/"+rootFileManager.getFilename()+"/"+parentFileManager.getFilename(), fileFileName);
if(!target.exists()){
String houZhuiMing=fileFileName.substring(fileFileName.lastIndexOf(".")+1);
if(list.contains(houZhuiMing.toLowerCase())){
copy(file,target);
//保存到数据库
FileManager fileManager=new FileManager();
fileManager.setFilename(fileFileName);
fileManager.setFileSize((int)file.length());
fileManager.setFileContentType(houZhuiMing);
fileManager.setParentDirectory(parentId);
fileManager.setIsDirectory(false);
fileManager.setIsFile(true);
fileManager.setUploadTime(new Date());
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
if(user!=null){
fileManager.setUser(user);
}
else{
user=userSerivce.getUser(new Long(1));
fileManager.setUser(user);
}
fileManagerService.save(fileManager);
HistoryManager history=new HistoryManager();
history.setFileName(fileFileName);
history.setFileLength(fileManager.getFileSize()/1024);
history.setFileType("目录");
history.setOpetionType("上传文件");
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("上传成功");
}
else{
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("只能上传图片,文本,word,zip,rar,xls文件");
}
}
else{
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("文件已经存在");
}
} catch (Exception e) {
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("上传失败");
throw e;
}
return null;
}
/**
* 修改目录
* @return
*/
public String updateDirectory() throws Exception{
String filePath=getRequest().getRealPath("/");
if(parentId==1){
FileManager fileManager=fileManagerService.getFileManager(new Long(parentId));
File file=new File(filePath+"/"+fileManager.getFilename());
String newFileName=filePath.substring(0,filePath.lastIndexOf("\\"))+"\\"+fileFileName;
File file1=new File(newFileName);
StringBuffer sb=new StringBuffer("{");
if(file1.exists()){ //先判断该目录是否存在
sb.append("'status':'allReady'");
}
else{
file.renameTo(new File(newFileName));
fileManager.setFilename(fileFileName);
fileManagerService.updateFileManager(fileManager);
sb.append("'status':'success'");
}
sb.append("}");
HistoryManager history=new HistoryManager();
history.setFileName(fileFileName);
history.setFileLength(0);
history.setFileType("目录");
history.setOpetionType("修改目录");
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write(sb.toString());
}
else{
FileManager fileManager=fileManagerService.getFileManager(new Long(parentId));
FileManager parentFile=fileManagerService.getFileManager(new Long(fileManager.getParentDirectory()));
filePath=filePath+"\\"+parentFile.getFilename()+"\\"+fileManager.getFilename();
fileManager.setFilename(fileFileName);
File file=new File(filePath);
String newFileName=filePath.substring(0,filePath.lastIndexOf("\\"))+"\\"+fileFileName;
File file1=new File(newFileName);
StringBuffer sb=new StringBuffer("{");
if(file1.exists()){ //先判断该目录是否存在
sb.append("'status':'allReady'");
}
else{
file.renameTo(new File(newFileName));
fileManagerService.updateFileManager(fileManager);
sb.append("'status':'success'");
}
sb.append("}");
HistoryManager history=new HistoryManager();
history.setFileName(fileFileName);
history.setFileLength(0);
history.setFileType("目录");
history.setOpetionType("修改目录");
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write(sb.toString());
}
return null;
}
/**
* 删除文件
* @return
* @throws Exception
*/
public String deleteDirectoryOrFile()throws Exception{
try {
FileManager fileManager=fileManagerService.getFileManager(new Long(parentId));
String filePath=getRequest().getRealPath("/");
FileManager parentFileManager=fileManagerService.getFileManager(new Long(fileManager.getParentDirectory()));
FileManager rootFileManager=fileManagerService.getFileManager(new Long(1));
File dFile=null;
if(parentFileManager.getFilename()==rootFileManager.getFilename()){ //删除目录
dFile=new File(filePath+"/"+rootFileManager.getFilename()+"/"+fileManager.getFilename());
}
else{ //删除文件
dFile = new File(filePath+"/"+rootFileManager.getFilename()+"/"+parentFileManager.getFilename()+"/"+fileManager.getFilename());
}
if(dFile.exists())
{
dFile.delete();
HistoryManager history=new HistoryManager();
history.setFileName(fileManager.getFilename());
history.setFileLength(0);
history.setFileType("目录");
history.setOpetionType("删除文件,目录");
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
fileManagerService.deleteFileManager(new Long(parentId));
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("删除成功!~");
}
else{
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("该文件已经删除或者不存在!~");
}
} catch (IOException e) {
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("删除失败!~");
}
return null;
}
/**
* @return
* @throws Exception
*/
public String loadDocument() throws Exception{
StringBuilder sb=new StringBuilder("[");
String root=getRequest().getParameter("root");
if(root!=null&&"true".equals(root)){
FileManager fileManager= fileManagerService.getFileManager(new Long(1));
sb.append("{");
sb.append("'id':").append(""+fileManager.getId()+",");
sb.append("'fileName':").append("'"+fileManager.getFilename()+"',");
sb.append("'fileSize':").append(fileManager.getFileSize()+",");
sb.append("'fileContentType':").append("'"+fileManager.getFileContentType()+"',");
sb.append("'uploadUser':").append("'"+fileManager.getUser().getLoginName()+"',");
sb.append("'uploadTime':").append("'"+fileManager.getUploadTime()+"',");
sb.append("'parentDirectory':").append("'"+fileManager.getParentDirectory()+"',");
sb.append("'isDirectory':").append("'"+fileManager.getIsDirectory()+"',");
sb.append("'isFile':").append("'"+fileManager.getIsFile()+"',");
sb.append("'childFiles':");
sb.append("''");
sb.append("}");
}
else{
List<FileManager> list=fileManagerService.getFileManagerByParentId(id);
for(FileManager fileManager1:list){
sb.append("{");
sb.append("'id':").append(""+fileManager1.getId()+",");
sb.append("'fileName':").append("'"+fileManager1.getFilename()+"',");
sb.append("'fileSize':").append(fileManager1.getFileSize()+",");
sb.append("'fileContentType':").append("'"+fileManager1.getFileContentType()+"',");
sb.append("'uploadUser':").append("'"+fileManager1.getUser().getLoginName()+"',");
sb.append("'parentDirectory':").append("'"+fileManager1.getParentDirectory()+"',");
sb.append("'uploadTime':").append("'"+fileManager1.getUploadTime()+"',");
sb.append("'isDirectory':").append("'"+fileManager1.getIsDirectory()+"',");
sb.append("'isFile':").append("'"+fileManager1.getIsFile()+"'");
sb.append("},");
}
if(sb.lastIndexOf(",")>0){
sb=new StringBuilder(sb.substring(0,sb.lastIndexOf(",")));
}
}
sb.append("]");
System.out.println(sb.toString());
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write(sb.toString());
return null;
}
@Override
public String execute() throws Exception {
return SUCCESS;
}
/**
* 下载文件
* @return
*/
public InputStream getDownLoadFile() throws Exception{
FileManager fileManager=fileManagerService.getFileManager(new Long(parentId));
fileFileName=fileManager.getFilename();
FileManager parentFileManager=fileManagerService.getFileManager(new Long(fileManager.getParentDirectory()));
String filePath=getRequest().getRealPath("/");
FileManager rootFileManager=fileManagerService.getFileManager(new Long(1));
filePath=filePath+"/"+rootFileManager.getFilename()+"/"+parentFileManager.getFilename()+"/"+fileManager.getFilename();
File file=new File(filePath);
if(file.exists()){ //判断文件是否存在
HistoryManager history=new HistoryManager();
history.setFileName(fileManager.getFilename() );
history.setFileLength(fileManager.getFileSize()/1024);
history.setFileType("文件");
history.setOpetionType("下载文件");
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
return ServletActionContext.getServletContext().getResourceAsStream(rootFileManager.getFilename()+"/"+parentFileManager.getFilename()+"/"+fileManager.getFilename());
}
else{ //
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("对不起该文件不存在");
}
return null;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public String getDownFileName() {
try {
return new String(fileFileName.getBytes(), "ISO8859-1");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public void setDownFileName(String downFileName) {
this.downFileName = downFileName;
}
}
----
xml配置:
<package name="document" extends="struts-default" namespace="/document">
<action name="documentManagerAction" class="documentManagerAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="contentDisposition">attachment;filename=${downFileName}</param>
<param name="inputName">downLoadFile</param>
<param name="bufferSize">4096</param>
</result>
</action>
</package>
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springside.modules.orm.Page;
import org.springside.modules.security.springsecurity.SpringSecurityUtils;
import com.dynastarter.sc.file.baseaction.BaseAction;
import com.dynastarter.sc.file.po.FileManager;
import com.dynastarter.sc.file.po.HistoryManager;
import com.dynastarter.sc.file.po.User;
import com.dynastarter.sc.file.service.FileManagerService;
import com.dynastarter.sc.file.service.HistoryManagerService;
import com.dynastarter.sc.file.service.UserService;
@Controller
@Scope("prototype")
public class DocumentManagerAction extends BaseAction{
public DocumentManagerAction(){
System.out.println("DocumentManagerAction======>");
}
private final int BUFFER_SIZE = 16 * 1024 ;
private int id;
private File file; //上传文件
private String fileFileName; //上传文件�
private String fileContentType; //文件类型
private int parentId;
private String downFileName;
private Page<FileManager> page=new Page<FileManager>();
@Autowired
FileManagerService fileManagerService;
@Autowired
UserService userSerivce;
@Autowired
HistoryManagerService historyService;
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
/**
* 创建目录
* @return
*/
public String createDirectory() throws Exception{
String filePath=getRequest().getRealPath("/");
String parentPath=fileManagerService.getFileManager(new Long(parentId)).getFilename();
//创建目录
fileFileName=java.net.URLDecoder.decode(fileFileName, "UTF-8"); //将js代码中的编码的过的参数解码
File myFilePath = new File(filePath+"/"+parentPath,fileFileName);
if(!myFilePath.exists())
{
//创建该目录
myFilePath.mkdirs();
//保存数据库
FileManager fileManager=new FileManager();
fileManager.setFilename(fileFileName);
fileManager.setFileContentType("directory");
fileManager.setFileSize(0);
fileManager.setParentDirectory(parentId);
fileManager.setUploadTime(new Date());
fileManager.setIsDirectory(true);
fileManager.setIsFile(false);
//
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
if(user!=null){
fileManager.setUser(user);
}
else{
user=userSerivce.getUser(new Long(1));
fileManager.setUser(user);
}
fileManagerService.save(fileManager);
HistoryManager history=new HistoryManager();
history.setFileName(fileFileName);
history.setFileLength(0);
history.setFileType("目录");
history.setOpetionType("创建目录");
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
getResponse().setContentType("json;charset=UTF-8");
StringBuffer sb=new StringBuffer("{");
sb.append("'id':"+fileManager.getId()+",'status':'success'");
sb.append("}");
getResponse().getWriter().write(sb.toString());
}
else{
getResponse().setContentType("json;charset=UTF-8");
getResponse().getWriter().write("{'status':'allReady'}");
}
return null;
}
public void copy(File src, File dst) {
try {
InputStream in = null ;
OutputStream out = null ;
try {
in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
byte [] buffer = new byte [BUFFER_SIZE];
while (in.read(buffer) > 0 ) {
out.write(buffer);
}
out.flush();
} finally {
if ( null != in) {
in.close();
}
if ( null != out) {
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 批量删除
* @return
*/
public String modelDelete(){
return null;
}
/**
* 上传文件
* @return
*/
public String upLoadFile() throws Exception{
try {
List<String> list=new ArrayList<String>();
list.add("txt");
list.add("jpg");
list.add("png");
list.add("gif");
list.add("doc");
list.add("rar");
list.add("xls");
list.add("zip");
String tagDirectory = getRequest().getRealPath("/");
FileManager parentFileManager=fileManagerService.getFileManager(new Long(parentId));
FileManager rootFileManager=fileManagerService.getFileManager(new Long(1));
File target = new File(tagDirectory+"/"+rootFileManager.getFilename()+"/"+parentFileManager.getFilename(), fileFileName);
if(!target.exists()){
String houZhuiMing=fileFileName.substring(fileFileName.lastIndexOf(".")+1);
if(list.contains(houZhuiMing.toLowerCase())){
copy(file,target);
//保存到数据库
FileManager fileManager=new FileManager();
fileManager.setFilename(fileFileName);
fileManager.setFileSize((int)file.length());
fileManager.setFileContentType(houZhuiMing);
fileManager.setParentDirectory(parentId);
fileManager.setIsDirectory(false);
fileManager.setIsFile(true);
fileManager.setUploadTime(new Date());
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
if(user!=null){
fileManager.setUser(user);
}
else{
user=userSerivce.getUser(new Long(1));
fileManager.setUser(user);
}
fileManagerService.save(fileManager);
HistoryManager history=new HistoryManager();
history.setFileName(fileFileName);
history.setFileLength(fileManager.getFileSize()/1024);
history.setFileType("目录");
history.setOpetionType("上传文件");
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("上传成功");
}
else{
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("只能上传图片,文本,word,zip,rar,xls文件");
}
}
else{
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("文件已经存在");
}
} catch (Exception e) {
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("上传失败");
throw e;
}
return null;
}
/**
* 修改目录
* @return
*/
public String updateDirectory() throws Exception{
String filePath=getRequest().getRealPath("/");
if(parentId==1){
FileManager fileManager=fileManagerService.getFileManager(new Long(parentId));
File file=new File(filePath+"/"+fileManager.getFilename());
String newFileName=filePath.substring(0,filePath.lastIndexOf("\\"))+"\\"+fileFileName;
File file1=new File(newFileName);
StringBuffer sb=new StringBuffer("{");
if(file1.exists()){ //先判断该目录是否存在
sb.append("'status':'allReady'");
}
else{
file.renameTo(new File(newFileName));
fileManager.setFilename(fileFileName);
fileManagerService.updateFileManager(fileManager);
sb.append("'status':'success'");
}
sb.append("}");
HistoryManager history=new HistoryManager();
history.setFileName(fileFileName);
history.setFileLength(0);
history.setFileType("目录");
history.setOpetionType("修改目录");
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write(sb.toString());
}
else{
FileManager fileManager=fileManagerService.getFileManager(new Long(parentId));
FileManager parentFile=fileManagerService.getFileManager(new Long(fileManager.getParentDirectory()));
filePath=filePath+"\\"+parentFile.getFilename()+"\\"+fileManager.getFilename();
fileManager.setFilename(fileFileName);
File file=new File(filePath);
String newFileName=filePath.substring(0,filePath.lastIndexOf("\\"))+"\\"+fileFileName;
File file1=new File(newFileName);
StringBuffer sb=new StringBuffer("{");
if(file1.exists()){ //先判断该目录是否存在
sb.append("'status':'allReady'");
}
else{
file.renameTo(new File(newFileName));
fileManagerService.updateFileManager(fileManager);
sb.append("'status':'success'");
}
sb.append("}");
HistoryManager history=new HistoryManager();
history.setFileName(fileFileName);
history.setFileLength(0);
history.setFileType("目录");
history.setOpetionType("修改目录");
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write(sb.toString());
}
return null;
}
/**
* 删除文件
* @return
* @throws Exception
*/
public String deleteDirectoryOrFile()throws Exception{
try {
FileManager fileManager=fileManagerService.getFileManager(new Long(parentId));
String filePath=getRequest().getRealPath("/");
FileManager parentFileManager=fileManagerService.getFileManager(new Long(fileManager.getParentDirectory()));
FileManager rootFileManager=fileManagerService.getFileManager(new Long(1));
File dFile=null;
if(parentFileManager.getFilename()==rootFileManager.getFilename()){ //删除目录
dFile=new File(filePath+"/"+rootFileManager.getFilename()+"/"+fileManager.getFilename());
}
else{ //删除文件
dFile = new File(filePath+"/"+rootFileManager.getFilename()+"/"+parentFileManager.getFilename()+"/"+fileManager.getFilename());
}
if(dFile.exists())
{
dFile.delete();
HistoryManager history=new HistoryManager();
history.setFileName(fileManager.getFilename());
history.setFileLength(0);
history.setFileType("目录");
history.setOpetionType("删除文件,目录");
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
fileManagerService.deleteFileManager(new Long(parentId));
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("删除成功!~");
}
else{
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("该文件已经删除或者不存在!~");
}
} catch (IOException e) {
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("删除失败!~");
}
return null;
}
/**
* @return
* @throws Exception
*/
public String loadDocument() throws Exception{
StringBuilder sb=new StringBuilder("[");
String root=getRequest().getParameter("root");
if(root!=null&&"true".equals(root)){
FileManager fileManager= fileManagerService.getFileManager(new Long(1));
sb.append("{");
sb.append("'id':").append(""+fileManager.getId()+",");
sb.append("'fileName':").append("'"+fileManager.getFilename()+"',");
sb.append("'fileSize':").append(fileManager.getFileSize()+",");
sb.append("'fileContentType':").append("'"+fileManager.getFileContentType()+"',");
sb.append("'uploadUser':").append("'"+fileManager.getUser().getLoginName()+"',");
sb.append("'uploadTime':").append("'"+fileManager.getUploadTime()+"',");
sb.append("'parentDirectory':").append("'"+fileManager.getParentDirectory()+"',");
sb.append("'isDirectory':").append("'"+fileManager.getIsDirectory()+"',");
sb.append("'isFile':").append("'"+fileManager.getIsFile()+"',");
sb.append("'childFiles':");
sb.append("''");
sb.append("}");
}
else{
List<FileManager> list=fileManagerService.getFileManagerByParentId(id);
for(FileManager fileManager1:list){
sb.append("{");
sb.append("'id':").append(""+fileManager1.getId()+",");
sb.append("'fileName':").append("'"+fileManager1.getFilename()+"',");
sb.append("'fileSize':").append(fileManager1.getFileSize()+",");
sb.append("'fileContentType':").append("'"+fileManager1.getFileContentType()+"',");
sb.append("'uploadUser':").append("'"+fileManager1.getUser().getLoginName()+"',");
sb.append("'parentDirectory':").append("'"+fileManager1.getParentDirectory()+"',");
sb.append("'uploadTime':").append("'"+fileManager1.getUploadTime()+"',");
sb.append("'isDirectory':").append("'"+fileManager1.getIsDirectory()+"',");
sb.append("'isFile':").append("'"+fileManager1.getIsFile()+"'");
sb.append("},");
}
if(sb.lastIndexOf(",")>0){
sb=new StringBuilder(sb.substring(0,sb.lastIndexOf(",")));
}
}
sb.append("]");
System.out.println(sb.toString());
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write(sb.toString());
return null;
}
@Override
public String execute() throws Exception {
return SUCCESS;
}
/**
* 下载文件
* @return
*/
public InputStream getDownLoadFile() throws Exception{
FileManager fileManager=fileManagerService.getFileManager(new Long(parentId));
fileFileName=fileManager.getFilename();
FileManager parentFileManager=fileManagerService.getFileManager(new Long(fileManager.getParentDirectory()));
String filePath=getRequest().getRealPath("/");
FileManager rootFileManager=fileManagerService.getFileManager(new Long(1));
filePath=filePath+"/"+rootFileManager.getFilename()+"/"+parentFileManager.getFilename()+"/"+fileManager.getFilename();
File file=new File(filePath);
if(file.exists()){ //判断文件是否存在
HistoryManager history=new HistoryManager();
history.setFileName(fileManager.getFilename() );
history.setFileLength(fileManager.getFileSize()/1024);
history.setFileType("文件");
history.setOpetionType("下载文件");
String loginName=SpringSecurityUtils.getCurrentUserName();
User user=userSerivce.login(loginName,SpringSecurityUtils.getCurrentUser().getPassword());
history.setUploadUser(user);
history.setUploadTime(new Date());
historyService.save(history);
return ServletActionContext.getServletContext().getResourceAsStream(rootFileManager.getFilename()+"/"+parentFileManager.getFilename()+"/"+fileManager.getFilename());
}
else{ //
getResponse().setContentType("text/html;charset=UTF-8");
getResponse().getWriter().write("对不起该文件不存在");
}
return null;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public String getDownFileName() {
try {
return new String(fileFileName.getBytes(), "ISO8859-1");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public void setDownFileName(String downFileName) {
this.downFileName = downFileName;
}
}
----
xml配置:
<package name="document" extends="struts-default" namespace="/document">
<action name="documentManagerAction" class="documentManagerAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="contentDisposition">attachment;filename=${downFileName}</param>
<param name="inputName">downLoadFile</param>
<param name="bufferSize">4096</param>
</result>
</action>
</package>
相关推荐
struts2上传下载struts2上传下载
struts2上传下载项目,代码详细,注释清晰,简单易懂
Struts2 上传下载
Struts2上传下载,可以更方便的让大家学习、使用
struts2上传下载实例包含了很多种不同的方法
struts2 上传 下载 项目 mysql dao mvc
简单的struts2上传下载文件功能,希望可以帮助到大家
struts2上传下载jar包
struts2 学习经典案例,包含struts2标签,上传下载,拦截器等。可以帮助了解struts2框架,并进行扩展
完整的基于Struts2的上传下载功能实现,开发平台为MyEclipse
Struts2 上传下载 Demo