📄 addarticleaction.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.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.comingnet.bean.Article;
import com.comingnet.bean.ArticleAppFiles;
import com.comingnet.bean.ArticleDAO;
import com.comingnet.bean.UserInfor;
import com.comingnet.intercepter.UserSessionAware;
import com.db.ProxoolAction;
import com.opensymphony.xwork2.ActionSupport;
public class AddArticleAction extends ActionSupport implements
UserSessionAware, ServletRequestAware {
private static final long serialVersionUID = 4238758283220483521L;
private UserInfor userSession = null;
private String auid_test = "6";
private int id;
private Article article;
private List<HashMap<String, String>> FirstLmList = null;
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<ArticleAppFiles> filelist;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
public Article getArticle() {
return article;
}
public void setArticle(Article article) {
this.article = article;
}
/**
* 将文件复制到给定的文件夹
* @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 saveArticleInDatabase(Article article){
ArticleDAO dao = new ArticleDAO();
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() ;
article.setAr_fbrxm(n_fbrxm) ;
article.setAr_xxbh(n_xxbh) ;
article.setAr_xxmc(n_xxmc) ;
article.setAr_fbrzh(n_fbrzh) ;
article.setAr_xszt("1") ;
article.setAr_userclass(n_userclass) ;
dao.addArticle(article);
}
/**
* 将上传的文件保存到notice/uploadFile文件夹中,并更名为:当前时间+文件序号+扩展名
*
*/
private void saveFilesInFolder(){
if(myFile!=null){
if(myFile.length != 0){
imageFileName = new String[myFile.length];
filelist = new ArrayList<ArticleAppFiles>();
}
for(int i=0; i<myFile.length; i++){
ArticleAppFiles file = new ArticleAppFiles();
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);
}
article.setFiles(filelist);
}
}
/**
* 根据id返回notice对象
* @return
*/
public String LoadArticle(){
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
String flag = "";
try {
FirstLmList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> pair = null;
conn = ProxoolAction.getConnection();
stmt = conn.prepareStatement("select lmid,lmmc from w_lmb");
rs = stmt.executeQuery();
while (rs.next()) {
pair = new HashMap<String, String>();
pair.put("lmid", new Integer(rs.getInt(1)).toString());
pair.put("lmmc", rs.getString(2));
FirstLmList.add(pair);
}
System.out.println(FirstLmList.toString());
flag = SUCCESS;
} catch (Exception e) {
System.out.println(e.toString());
flag = ERROR;
}finally{
ProxoolAction.closeResultSet(rs);
ProxoolAction.closeStatement(stmt);
ProxoolAction.closeConnection(conn);
}
ArticleDAO dao = new ArticleDAO();
dao.getArticleInfoById(getId());
setArticle(dao.getArticle());
request.setAttribute("content", article.getAr_nr());
return flag;
}
/**
* 添加公告action方法 将上传文件保存到notice/uploadFile下,并添加数据库纪录
* @return
*
*/
public String AddArticle(){
saveFilesInFolder();
saveArticleInDatabase(article);//保存article信息
return SUCCESS;
}
public List<HashMap<String, String>> getFirstLmList() {
return FirstLmList;
}
public void setFirstLmList(List<HashMap<String, String>> firstLmList) {
FirstLmList = firstLmList;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -