81,091
社区成员
发帖
与我相关
我的任务
分享
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
//response.setContentType("text/html;charset=UTF-8");
//request.setCharacterEncoding("UTF-8");
String uid = (String)session.getAttribute("uid");
String nickname = (String)session.getAttribute("nickname");
String bookid = request.getParameter("bookid");
String cover = request.getParameter("cover");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>封面管理</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style type="text/css">
<!--
-->
</style>
</head>
<body>
<form action="/ECSystem/cover?bookid=<%=bookid %>" method="post" enctype="multipart/form-data">
<label>
<input type="file" name="file">
</label>
<label>
<input type="submit" name="Submit" value="上传封面"><input type="button" name="Submit2" onClick="window.location.href='/ECSystem/cover?bookid=<%=bookid %>&defaultcover=true'" value="默认封面">
</label>
<br>
</form>
<label>
<input type="image" name="imageField" width="145px" height="210" src="<%=cover %>">
</label>
</body>
</html>
package com.struts.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.io.PrintWriter;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.service.IBookinfoService;
import com.userinfo.Bookinfo;
public class CoverManageAction {
private String fileFileName;
private File file;
private static final int BUFFER_SIZE = 64 * 1024 ; //缓冲器大小
private String imageFileName;
private String bookid;
private IBookinfoService bookinfoService;
private String cover;
private String defaultcover = "false";
public void setDefaultcover(String defaultcover) {
this.defaultcover = defaultcover;
}
public String getCover() {
return this.cover;
}
public String getBookid() {
return this.bookid;
}
public void setBookid(String bookid) {
this.bookid = bookid;
}
public void setFile(File file) {
this.file = file;
}
public void setBookinfoService(IBookinfoService bookinfoService) {
this.bookinfoService = bookinfoService;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public int getFileSizes(File f) throws Exception {//取得文件大小
int s = 0;
if (f.exists()) {
FileInputStream fis = null;
fis = new FileInputStream(f);
s= fis.available();
if (fis != null)
fis.close();
}
return s;
}
private void copy(File src, File dst) throws Exception {
if (!src.exists())
return;
PrintWriter document_out = ServletActionContext.getResponse().getWriter();
Boolean result = true;
int filesize = getFileSizes(src);
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, filesize) > 0 ) {
out.write(buffer, 0, filesize);
}
} finally {
if ( null != in) {
in.close();
}
if ( null != out) {
out.close();
}
}
} catch (Exception e) {
result = false;
e.printStackTrace();
}
if (result == true) {
document_out.print("<script>parent.callback('upload file success');</script>");
}
else {
document_out.print("<script>parent.callback('upload file fail');</script>");
}
}
private static String getExtention(String fileName) {
int pos = fileName.lastIndexOf( "." );
return fileName.substring(pos);
}
public String execute() throws Exception {
if (this.defaultcover.equals("true")) {
this.imageFileName = "./img/cover/cover.jpg";
}
else {
/*
String filename = "./img/cover/" + this.bookid + "_cover";
this.imageFileName = filename + getExtention(this.fileFileName);
File imageFile = new File(ServletActionContext.getServletContext().getRealPath("/") + imageFileName);
copy(file, imageFile);
*/
this.imageFileName = this.fileFileName;
}
//ActionContext.getContext().
//ActionContext cxt = ActionContext.getContext();
//HttpServletRequest request = (HttpServletRequest)cxt.get(ServletActionContext.HTTP_REQUEST);
//request.setCharacterEncoding("utf-8");
Bookinfo bookinfo;
bookinfo = this.bookinfoService.getBookinfoByBookid(Long.parseLong(this.bookid));
if (bookinfo != null) {
bookinfo.setCover(imageFileName);
this.bookinfoService.UpdateBookinfo(bookinfo);
this.cover = imageFileName;
ActionContext.getContext().getSession().put("bookid", this.bookid);
ActionContext.getContext().getSession().put("cover", this.cover);
}
return "success";
}
}
上面的代码我注释了
/*
String filename = "./img/cover/" + this.bookid + "_cover";
this.imageFileName = filename + getExtention(this.fileFileName);
File imageFile = new File(ServletActionContext.getServletContext().getRealPath("/") + imageFileName);
copy(file, imageFile);
*/
以后,cover.jsp就不会出现乱码的问题,但是注释的代码是一段写图片文件的功能,为什么和页面有关系,实在搞不懂!!!