81,092
社区成员
发帖
与我相关
我的任务
分享
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
import com.cvicse.form.UploadForm;
public class UploadAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws FileNotFoundException, IOException {
String dir = servlet.getServletContext().getRealPath("../../upload");
UploadForm uf = (UploadForm) form;
FormFile file = uf.getFile();
if (file == null) {
return mapping.findForward("success");
}
String fname = file.getFileName();
String size = Integer.toString(file.getFileSize()) + "bytes";
InputStream is = file.getInputStream();
OutputStream os = new FileOutputStream(dir + "/" + fname);
System.out.println(dir);
int bytes = 0;
byte[] buffer = new byte[1048576];
while ((bytes = is.read(buffer, 0, 1048576)) != -1) {
os.write(buffer, 0, bytes);
}
os.close();
is.close();
uf.setFname(fname);
uf.setSize(size);
uf.setDir(dir + "/" + fname);
//System.out.println("http://192.168.132.118:8080/updown/" +dir+"\\"+ fname);
file.destroy();
return mapping.findForward("success");
}
}
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:form action="uploadAction.do" method="post"
enctype="multipart/form-data">
请选择您要上传的文件:
<html:file property="file"></html:file>
<html:submit />
<p>
<logic:notEmpty name="uploadForm" property="fname">
您刚上传的文件是:
<ul>
<li>
名 称:
<bean:write name="uploadForm" property="fname" />
<li>
文件大小:
<bean:write name="uploadForm" property="size" />
<li>
<a href="<bean:write name="uploadForm" property="dir" />"><bean:write
name="uploadForm" property="fname" />
</a>
</ul>
</logic:notEmpty>
</html:form>
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String action = request.getParameter("action");
System.out.println("新闻action=" +action);
if (action == null || "".equals(action)) {
return mapping.findForward("error");
} else if ("newsAdd".equals(action)) {
try {
return newsAdd(mapping, form, request, response);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else if ("newsQuery".equals(action)) {
return newsQuery(mapping, form, request, response);
} else if ("newsModifyQuery".equals(action)) {
return newsModifyQuery(mapping, form, request, response);
} else if ("newsModify".equals(action)) {
try {
return newsModify(mapping, form, request, response);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else if ("newsDel".equals(action)) {
return newsDel(mapping, form, request, response);
}else if("newsDetail".equals(action)){
return newsDetail(mapping,form,request,response);
}
request.setAttribute("error", "操作失败!");
return mapping.findForward("error");
}
/***********************
* 添加新闻
*
* @throws IOException
* @throws FileNotFoundException
* @throws IOException
**************************/
private ActionForward newsAdd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws FileNotFoundException, IOException {
NewsForm newsForm = (NewsForm) form;
ActionForward forward = null;
newsForm.setNews_title(newsForm.getNews_title());
newsForm.setNews_classid(newsForm.getNews_classid());
newsForm.setNews_time(newsForm.getNews_time());
newsForm.setNews_author(newsForm.getNews_author());
newsForm.setNews_content(newsForm.getNews_content());
if (newsForm.getNews_classid().equals("图片新闻")) {
newsForm.setNews_photodir(newsForm.getNews_photodir());
FormFile photo = newsForm.getPhoto();
response.setContentType("text/html;charset=UTF-8");
String filename = photo.getFileName();
if (!(photo.getFileSize() == 0 || filename.trim().equals(""))) {
InputStream contentStream = photo.getInputStream();
String savedir = this.getServlet().getServletContext()
.getRealPath("/images/newsphotos/");
UUID uuid = UUID.randomUUID();
String prefixName = uuid.toString();// 图片上传
String extName = filename.substring(filename.lastIndexOf('.'));
if (!extName.equals(".jpg") && !extName.equals(".JPG")
&& !extName.equals(".gif") && !extName.equals(".GIF")
&& !extName.equals(".bmp") && !extName.equals(".BMP")) {
request.setAttribute("error",
"图片的格式只能为:“JPG”,“jpg”,“gif”,“bmp”,“BMP”格式!");
forward = mapping.findForward("error");
} else {
if (photo.getFileSize() > 2 * 1024 * 1024) {
request.setAttribute("error", "上传的图片大小不能超过2M!");
forward = mapping.findForward("error");
} else {
String newfilename = prefixName + extName;
newsForm.setNews_photodir(newfilename);
System.out.println("getNews_photodir="
+ newsForm.getNews_photodir());
File filephoto = new File(savedir, newfilename);
FileOutputStream fos = new FileOutputStream(filephoto);
int a = newsdao.insert(newsForm);
if (a == 0) {
request.setAttribute("error", "新闻添加失败!");
forward = mapping.findForward("error");
} else if (a == 2) {
request.setAttribute("error", "该条新闻已经添加!");
forward = mapping.findForward("error");
} else {
int len = 0;
byte[] buf = new byte[1024];
while ((len = contentStream.read(buf)) != -1) {
fos.write(buf, 0, len);
}
contentStream.close();
fos.close();
forward = mapping.findForward("newsAdd");
}
}
}
} else {
request.setAttribute("error", "请选择您要上传的链接图片!");
forward = mapping.findForward("error");
}
} else {
int a = newsdao.insert(newsForm);
if (a == 0) {
request.setAttribute("error", "新闻添加失败!");
forward = mapping.findForward("error");
} else if (a == 2) {
request.setAttribute("error", "该条新闻已经添加!");
forward = mapping.findForward("error");
}
else{
forward = mapping.findForward("newsAdd");
}
return forward;
}
return forward;
}
public void uploadFile(FormFile pic,String filedir,String picname){
if(!new File(filedir).isDirectory()){
new File(filedir).mkdirs();
}
int width = 0;int height = 0;
//上传图片到指定文件夹
try {
InputStream zpicStream = pic.getInputStream();
OutputStream zpicoutStream = new FileOutputStream(filedir+picname);
int bytesReader = 0;
byte[] readbuffer = new byte[8192];
while((bytesReader = zpicStream.read(readbuffer, 0, 8192))!=-1){
zpicoutStream.write(readbuffer, 0, bytesReader);
}
zpicoutStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}