package com.test.web.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.test.model.UploadFile;
import com.test.service.ItestService;
public class TestAction extends ActionSupport {
@Resource
private ItestService service;
private List<UploadFile> fileList;// 用于页面显示的文件列表
private UploadFile fileInfo;// 文件信息
private Long fileid;// 文件id
private InputStream downloadStream;// 文件下载流
private String downloadName;// 文件下载的另存为名称
private File upload;// 实际上传文件
private String uploadFileName; // 上传文件名
private String title;// 文件标题
private String describe;// 文件描述
private String likeStr;// 查询的关键字
private Integer pageCount;// 总页数
private Integer rowCount;// 总行数
private Integer pageNow;// 当前页
/**
* 显示文件列表
*
* @return
*/
public String pageFiles() {
Integer pageSize = 20;// 一页的行数
if (pageNow == null) {
pageNow = 1;
}
if (likeStr == null) {
likeStr = "";
}
rowCount = service.getRowCount(likeStr);
pageCount = rowCount / pageSize;
if (rowCount % pageSize != 0) {
pageCount++;
}
fileList = service.getFilesByPage(pageSize, (pageNow - 1) * pageSize, likeStr);
return SUCCESS;
}
/**
* 删除文件
*
* @return
* @throws NumberFormatException
* @throws Exception
*/
public String deleteFile() {
try {
service.deleteFileById(fileid);
} catch (IOException e) {
System.out.println("文件不存在");
e.printStackTrace();
}
return "deleteSuccess";
}
/**
* 加载文件信息
*
* @return
*/
public String toUpdateFile() {
fileInfo = service.findFileById(fileid);
return "toUpdateSuccess";
}
/**
* 修改文件信息
*
* @return
*/
public String updateFile() {
fileInfo.setId(fileid);
service.updateFile(fileInfo);
return "updateSuccess";
}
/**
* 下载文件 点击下载后取消会报错 不影响
*
* @return
*/
public String downloadFile() {
HttpServletResponse response = (HttpServletResponse) ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);
UploadFile fileInfo = service.findFileById(fileid);
try {
downloadName = new String(fileInfo.getOldName().getBytes(), "ISO-8859-1");
downloadStream = new FileInputStream(new File(fileInfo.getFilePath()));
response.setContentType("APPLICATION/OCTET-STREAM;charset=ISO-8859-1");
response.setHeader("Content-Disposition", "attachment;filename=" + downloadName);
} catch (Exception e) {
e.printStackTrace();
}
return "downloadSuccess";
}
/**
* 上传文件
*
* @return
* @throws Exception
*/
public String uploadFile() throws Exception {
try {
Date now = new Date();
String uploadFormatDate = new SimpleDateFormat("yyyy-MM-dd").format(now);// 格式化当前系统时间
String targetpath = ServletActionContext.getServletContext().getRealPath("/download/" + uploadFormatDate + "/");// 获得目标路径
System.out.println("上传目录:" + targetpath);
File targetFolder = new File(targetpath);// 目标目录
if (!targetFolder.exists()) {// 如果目标目录不存在,创建目录
targetFolder.mkdirs();
}
String oldName = uploadFileName;// 上传的文件名
String fileExt = getExt(oldName);// 扩展名
Long fileSize = 0L;// 文件大小 单位字节
String newName = now.getTime() + fileExt;// 保存的文件名称
Thread.sleep(1);// 防止文件重名
if (title.equals("")) {
title = "(无标题)";
}
if (describe.equals("")) {
describe = "(无描述)";
}
File target = new File(targetpath, newName);
// 文件0kb的话struts2 判断为不存在
if (!upload.exists()) {
target.createNewFile();
} else {
fileSize = upload.length();
FileUtils.copyFile(upload, target);// 上传至服务器的目录
}
UploadFile uf = new UploadFile(oldName, newName, title, describe, target.getAbsolutePath(), fileSize, now);// 创建文件对象
service.saveFile(uf);// 保存记录
} catch (Exception e) {
e.printStackTrace();
return INPUT;
}
return "uploadSuccess";
}
/**
* 获取文件的扩展名
*
* @param fileName
* 文件名
* @return
*/
public static String getExt(String fileName) {
return fileName.substring(fileName.lastIndexOf("."));
}
public UploadFile getFileInfo() {
return fileInfo;
}
public void setFileInfo(UploadFile fileInfo) {
this.fileInfo = fileInfo;
}
public Long getFileid() {
return fileid;
}
public void setFileid(Long fileid) {
this.fileid = fileid;
}
public String getDownloadName() {
return downloadName;
}
public void setDownloadName(String downloadName) {
this.downloadName = downloadName;
}
public File getUpload() {
return upload;
}
public String getLikeStr() {
return likeStr;
}
public void setLikeStr(String likeStr) {
this.likeStr = likeStr;
}
public void setUpload(File upload) {
this.upload = upload;
}
public Integer getPageCount() {
return pageCount;
}
public void setPageCount(Integer pageCount) {
this.pageCount = pageCount;
}
public Integer getRowCount() {
return rowCount;
}
public void setRowCount(Integer rowCount) {
this.rowCount = rowCount;
}
public Integer getPageNow() {
return pageNow;
}
public void setPageNow(Integer pageNow) {
this.pageNow = pageNow;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescribe() {
return describe;
}
public void setDescribe(String describe) {
this.describe = describe;
}
public List<UploadFile> getFileList() {
return fileList;
}
public void setFileList(List<UploadFile> fileList) {
this.fileList = fileList;
}
public InputStream getDownloadStream() {
return downloadStream;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
java ssh 文件管理 上传下载 (147个子文件)
TestAction.class 8KB
TestDaoImpl.class 3KB
UploadFile.class 3KB
TestServiceImpl.class 2KB
TestDaoImpl$1.class 2KB
TestDaoImpl$2.class 2KB
ItestService.class 551B
ItestDao.class 486B
.classpath 10KB
org.eclipse.wst.jsdt.ui.superType.container 49B
hibernate3.jar 2.31MB
jasperreports-2.0.5.jar 1.87MB
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar 1.57MB
xwork-core-2.1.6.jar 1.49MB
aspectjweaver.jar 1.47MB
ojdbc14_10g_r2.jar 1.47MB
iText-2.1.3.jar 1.02MB
poi-3.0.1.jar 888KB
freemarker-2.3.15.jar 859KB
struts2-core-2.1.8.1.jar 738KB
jxl.jar 706KB
org.springframework.context-3.0.1.RELEASE-A.jar 642KB
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar 603KB
c3p0-0.9.1.2.jar 596KB
javassist-3.9.0.GA.jar 583KB
commons-collections-3.2.jar 558KB
struts.jar 537KB
org.springframework.beans-3.0.1.RELEASE-A.jar 535KB
struts2-embeddedjsp-plugin-2.1.8.1.jar 528KB
org.springframework.web.struts-3.0.1.RELEASE-A.jar 524KB
spring-beans-2.5.6.jar 477KB
spring-context-2.5.6.jar 466KB
antlr-2.7.6.jar 433KB
spring-webmvc.jar 393KB
org.springframework.web.servlet-3.0.1.RELEASE-A.jar 389KB
com.springsource.org.apache.log4j-1.2.15.jar 387KB
velocity-1.5.jar 383KB
log4j-1.2.15.jar 383KB
spring-orm.jar 369KB
org.springframework.jdbc-3.0.1.RELEASE-A.jar 369KB
org.springframework.web-3.0.1.RELEASE-A.jar 352KB
org.springframework.core-3.0.1.RELEASE-A.jar 347KB
spring-jdbc.jar 328KB
org.springframework.orm-3.0.1.RELEASE-A.jar 324KB
com.springsource.net.sf.cglib-2.2.0.jar 319KB
spring-aop.jar 318KB
cglib-nodep-2.1_3.jar 317KB
org.springframework.aop-3.0.1.RELEASE-A.jar 313KB
dom4j-1.6.1.jar 307KB
com.springsource.org.apache.commons.httpclient-3.1.0.jar 301KB
commons-httpclient.jar 298KB
spring-core-2.5.6.jar 279KB
cglib-2.2.jar 272KB
com.springsource.org.codehaus.jackson.mapper-1.0.0.jar 264KB
com.springsource.org.apache.commons.lang-2.4.0.jar 258KB
commons-lang-2.3.jar 240KB
ognl-2.7.3.jar 234KB
spring-tx.jar 226KB
org.springframework.transaction-3.0.1.RELEASE-A.jar 223KB
ehcache-1.2.3.jar 203KB
spring-web-2.5.6.jar 190KB
commons-beanutils-1.7.0.jar 184KB
org.springframework.web.portlet-3.0.1.RELEASE-A.jar 169KB
org.springframework.expression-3.0.1.RELEASE-A.jar 152KB
spring-webmvc-portlet.jar 146KB
commons-digester-2.0.jar 145KB
commons-validator-1.3.1.jar 136KB
json-lib-2.1.jar 122KB
jotm.jar 121KB
commons-dbcp.jar 119KB
velocity-tools-view-1.4.jar 113KB
aspectjrt.jar 112KB
com.springsource.org.apache.commons.pool-1.5.3.jar 95KB
xapool.jar 90KB
commons-chain-1.2.jar 90KB
commons-io-1.3.2.jar 86KB
persistence.jar 69KB
oro-2.0.8.jar 64KB
commons-pool.jar 61KB
com.springsource.org.apache.commons.logging-1.1.1.jar 60KB
struts2-convention-plugin-2.1.8.1.jar 60KB
commons-fileupload-1.2.1.jar 56KB
org.springframework.oxm-3.0.1.RELEASE-A.jar 56KB
com.springsource.org.apache.commons.fileupload-1.2.0.jar 53KB
org.springframework.asm-3.0.1.RELEASE-A.jar 52KB
commons-fileupload.jar 52KB
struts2-json-plugin-2.1.8.1.jar 50KB
commons-codec.jar 46KB
commons-logging-api-1.1.jar 44KB
commons-logging-1.0.4.jar 37KB
classworlds-1.1.jar 37KB
spring-webmvc-struts.jar 36KB
commons-attributes-api.jar 35KB
asm-util-2.2.3.jar 34KB
asm-2.2.3.jar 34KB
org.springframework.aspects-3.0.1.RELEASE-A.jar 29KB
commons-attributes-compiler.jar 29KB
sslext-1.2-0.jar 26KB
slf4j-api-1.5.8.jar 23KB
spring-aspects.jar 20KB
共 147 条
- 1
- 2
尊敬的各位领导
- 粉丝: 14
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页