📄 noticeaddaction.java
字号:
package com.comingnet.action;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.comingnet.bean.NoticeAppFiles;
import com.comingnet.bean.Notice;
import com.comingnet.bean.NoticeDAO;
import com.comingnet.bean.UserInfor;
import com.comingnet.intercepter.UserSessionAware;
import com.opensymphony.xwork2.ActionSupport;
public class NoticeAddAction extends ActionSupport implements UserSessionAware ,ServletRequestAware{
private static final long serialVersionUID = -7515999704423016499L;
private UserInfor userSession=null;
private String auid_test="6";
private int id;
private Notice notice;
private HttpServletRequest request;
//用于获取和保存上传文件信息
private String[] imageFileName;
private File[] myFile;
private String[] myFileFileName;
private String[] myFileContentType;
private static final int BUFFER_SIZE = 16 * 1024;
private ArrayList<NoticeAppFiles> filelist;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Notice getNotice() {
return notice;
}
public void setNotice(Notice notice) {
this.notice = notice;
}
public String[] getImageFileName() {
return imageFileName;
}
public void setImageFileName(String[] imageFileName) {
this.imageFileName = imageFileName;
}
public File[] getMyFile() {
return myFile;
}
public void setMyFile(File[] myFile) {
this.myFile = myFile;
}
public String[] getMyFileContentType() {
return myFileContentType;
}
public void setMyFileContentType(String[] myFileContentType) {
this.myFileContentType = myFileContentType;
}
public String[] getMyFileFileName() {
return myFileFileName;
}
public void setMyFileFileName(String[] myFileFileName) {
this.myFileFileName = myFileFileName;
}
public String getAuid_test() {
return auid_test;
}
public void setAuid_test(String auid_test) {
this.auid_test = auid_test;
}
public UserInfor getUserSession() {
return userSession;
}
public void setUserSession(UserInfor userSession) {
this.userSession = userSession;
}
/**
* 将文件复制到给定的文件夹
* @param src 原文件
* @param dst 目标文件
*/
private static void copy(File src, File dst) {
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);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != in)
in.close();
if (null != out)
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 获取文件的扩展名
* @param fileName 包含扩展名的文件名
* @return 文件的扩展名
*/
private static String getExtention(String fileName) {
int pos = fileName.lastIndexOf(".");
return fileName.substring(pos);
}
/**
* 将notice信息保存到m_notice表
* @param notice
*/
private void saveNoticeInDatabase(Notice notice){
NoticeDAO dao = new NoticeDAO();
String n_fbrxm = userSession.getUserxm() ;
int n_xxbh = userSession.getUserxxbh() ;
String n_xxmc = userSession.getUserxxmc() ;
String n_fbrzh =String.valueOf(userSession.getUserid()) ;
String n_userclass = userSession.getUserclass() ;
notice.setN_fbrxm(n_fbrxm) ;
notice.setN_xxbh(n_xxbh) ;
notice.setN_xxmc(n_xxmc) ;
notice.setN_fbrzh(n_fbrzh) ;
notice.setN_xszt("1") ;
notice.setN_userclass(n_userclass) ;
// System.out.println(notice.getN_xxmc()) ;
dao.addNotice(notice);
}
/**
* 将上传的文件保存到notice/uploadFile文件夹中,并更名为:当前时间+文件序号+扩展名
*
*/
private void saveFilesInFolder(){
if(myFile!=null){
if(myFile.length != 0){
imageFileName = new String[myFile.length];
filelist = new ArrayList<NoticeAppFiles>();
}
for(int i=0; i<myFile.length; i++){
NoticeAppFiles file = new NoticeAppFiles();
file.setOldFilename(myFileFileName[i]);
imageFileName[i] = new Date().getTime()+ i + getExtention(myFileFileName[i]);//保证在同一时间内上传的文件不重名
file.setNewFilename(imageFileName[i]);
File imageFile = new File(ServletActionContext.getServletContext().getRealPath("/notice/uploadFile")+ "/" + imageFileName[i]);
copy(myFile[i], imageFile);
filelist.add(file);
}
notice.setFiles(filelist);
}
}
/**
* 根据id返回notice对象
* @return
*/
public String LoadNotice(){
NoticeDAO dao = new NoticeDAO();
dao.getNoticeInfoById(getId());
setNotice(dao.getNotice());
request.setAttribute("content", notice.getN_nr());
return SUCCESS;
}
/**
* 添加公告action方法 将上传文件保存到notice/uploadFile下,并添加数据库纪录
* @return
*
*/
public String AddNotice() {
saveFilesInFolder();
saveNoticeInDatabase(notice);//保存notice信息
return SUCCESS;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -