1.负责处理图形的bean:
//
---------------------------------------------------------------
package bean;
import javax.imageio.ImageIO;
import javax.imageio.IIOException;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.io.File;
import java.awt.image.AffineTransformOp;
import java.awt.geom.AffineTransform;
public class convertImage ... {
private String fileInput ;
private String fileOutput ;
public convertImage()
...{
}
public String getFileInput() ...{
return fileInput;
}
public void setFileInput(String fileInput) ...{
this.fileInput = fileInput;
}
public String getFileOutput() ...{
return fileOutput;
}
public void setFileOutput(String fileOutput) ...{
this.fileOutput = fileOutput;
}
public void convert()
...{
try ...{
File fi = new File(fileInput); //大图文件
File fo = new File(fileOutput); //将要转换出的小图文件
int nw = 150; //定义宽为150
int nh = 100; //定义高为100
AffineTransform transform = new AffineTransform();
BufferedImage bis = ImageIO.read(fi);
int w = bis.getWidth();
int h = bis.getHeight();
double sx = (double)nw/w;
double sy = (double)nh/h ;
//判断是横向图形还是坚向图形
if ( w > h ) //横向图形
...{
if ( (int)(sx * h ) > nh ) //比较高不符合高度要求,就按高度比例
...{
sx = sy ;
nw = (int)(w*sx) ;
}
else
...{
sy = sx ;
nh = (int)( h*sy) ;
}
}
else
...{
if ( (int)(sy * w ) > nw )
...{
sy = sx ;
nh = (int)(h * sy ) ;
}
else
...{
sx = sy ;
nw = (int)(w*sx) ;
}
}
transform.setToScale(sx,sy);
AffineTransformOp ato = new AffineTransformOp(transform,null);
BufferedImage bid = new BufferedImage(nw,nh,BufferedImage.TYPE_3BYTE_BGR);
ato.filter(bis,bid);
ImageIO.write(bid,"jpeg",fo);
}
catch(Exception e)
...{
e.printStackTrace();
}
}
}
package bean;
import javax.imageio.ImageIO;
import javax.imageio.IIOException;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.io.File;
import java.awt.image.AffineTransformOp;
import java.awt.geom.AffineTransform;
public class convertImage ... {
private String fileInput ;
private String fileOutput ;
public convertImage()
...{
}
public String getFileInput() ...{
return fileInput;
}
public void setFileInput(String fileInput) ...{
this.fileInput = fileInput;
}
public String getFileOutput() ...{
return fileOutput;
}
public void setFileOutput(String fileOutput) ...{
this.fileOutput = fileOutput;
}
public void convert()
...{
try ...{
File fi = new File(fileInput); //大图文件
File fo = new File(fileOutput); //将要转换出的小图文件
int nw = 150; //定义宽为150
int nh = 100; //定义高为100
AffineTransform transform = new AffineTransform();
BufferedImage bis = ImageIO.read(fi);
int w = bis.getWidth();
int h = bis.getHeight();
double sx = (double)nw/w;
double sy = (double)nh/h ;
//判断是横向图形还是坚向图形
if ( w > h ) //横向图形
...{
if ( (int)(sx * h ) > nh ) //比较高不符合高度要求,就按高度比例
...{
sx = sy ;
nw = (int)(w*sx) ;
}
else
...{
sy = sx ;
nh = (int)( h*sy) ;
}
}
else
...{
if ( (int)(sy * w ) > nw )
...{
sy = sx ;
nh = (int)(h * sy ) ;
}
else
...{
sx = sy ;
nw = (int)(w*sx) ;
}
}
transform.setToScale(sx,sy);
AffineTransformOp ato = new AffineTransformOp(transform,null);
BufferedImage bid = new BufferedImage(nw,nh,BufferedImage.TYPE_3BYTE_BGR);
ato.filter(bis,bid);
ImageIO.write(bid,"jpeg",fo);
}
catch(Exception e)
...{
e.printStackTrace();
}
}
}
2.上传文件的upload.jsp
<%
...
@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"
%>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
< head >
< title > My JSP 'upload.jsp' starting page </ 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">
-->
</ head >
< body >
< html:form action ="/upload.do" enctype ="multipart/form-data" >
< html:file property ="theFileone" />
< html:submit />
</ html:form >
</ body >
</ html >
//------------------------------------------------------------------------
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
< head >
< title > My JSP 'upload.jsp' starting page </ 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">
-->
</ head >
< body >
< html:form action ="/upload.do" enctype ="multipart/form-data" >
< html:file property ="theFileone" />
< html:submit />
</ html:form >
</ body >
</ html >
//------------------------------------------------------------------------
3.显示成功页面
//------------------------------------------------------------------------
<% ... @ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<% ... @ page contentType="text/html;charset=GB2312" %>
<% ...
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
< head >
< base href ="<%=basePath%>" >
< title > My JSP 'display.jsp' starting page </ 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">
-->
</ head >
< body >
上传成功. < br >
</ body >
</ html >
//---------------------------------------------------------------------
<% ... @ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<% ... @ page contentType="text/html;charset=GB2312" %>
<% ...
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
< head >
< base href ="<%=basePath%>" >
< title > My JSP 'display.jsp' starting page </ 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">
-->
</ head >
< body >
上传成功. < br >
</ body >
</ html >
//---------------------------------------------------------------------
4.Action
//
Created by MyEclipse Struts
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.1/xslt/JavaClass.xsl
package com.mk.struts.action;
import java.io. * ;
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.mk.struts.form.UploadForm;
import bean.convertImage;
/** */ /**
* MyEclipse Struts
* Creation date: 03-28-2006
*
* XDoclet definition:
* @struts.action validate="true"
*/
public class UploadAction extends Action ... {
// --------------------------------------------------------- Instance Variables
// --------------------------------------------------------- Methods
/** *//**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) ...{
// TODO Auto-generated method stub
String encoding = request.getCharacterEncoding() ;
if ( (encoding != null )&& (encoding.equalsIgnoreCase("uft-8")))
...{
response.setContentType("text/html;charset=gb2312") ; //如果没有找定编码,编码格式设为gb2312
}
UploadForm theForm = (UploadForm) form ;
FormFile fileone = theForm.getTheFileone() ; //取得上传的文件名
try
...{
//开始上传文件
String filePath = this.getServlet().getServletContext().getRealPath("/") ; //取得当前路径
InputStream stream = fileone.getInputStream() ; //把文件读入
ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
/**//*
* 建立一个上传文件的输出流如果是linux系统请把"/" 换成 "/"
*/
OutputStream bos = new FileOutputStream(filePath + fileone.getFileName()) ;
request.setAttribute("fileName",filePath + "/" + fileone.getFileName() ) ;
int bytesRead = 0 ;
byte[] buffer = new byte[8192] ;
while( (bytesRead = stream.read(buffer,0,8192) ) != -1 )
...{
bos.write(buffer,0,bytesRead) ;
}
bos.close();
stream.close() ;
//上传文件完成
String oldurl= filePath + fileone.getFileName() ;
String newurl= filePath + "min_" + fileone.getFileName() ; //新的缩略图保存地址
convertImage convert = new convertImage() ;
convert.setFileInput(oldurl) ;
convert.setFileOutput(newurl) ;
convert.convert() ;
}
catch(Exception e)
...{
System.err.print(e) ;
}
return mapping.findForward("display");
}
}
// ---------------------------------------------------------------------------
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.1/xslt/JavaClass.xsl
package com.mk.struts.action;
import java.io. * ;
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.mk.struts.form.UploadForm;
import bean.convertImage;
/** */ /**
* MyEclipse Struts
* Creation date: 03-28-2006
*
* XDoclet definition:
* @struts.action validate="true"
*/
public class UploadAction extends Action ... {
// --------------------------------------------------------- Instance Variables
// --------------------------------------------------------- Methods
/** *//**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) ...{
// TODO Auto-generated method stub
String encoding = request.getCharacterEncoding() ;
if ( (encoding != null )&& (encoding.equalsIgnoreCase("uft-8")))
...{
response.setContentType("text/html;charset=gb2312") ; //如果没有找定编码,编码格式设为gb2312
}
UploadForm theForm = (UploadForm) form ;
FormFile fileone = theForm.getTheFileone() ; //取得上传的文件名
try
...{
//开始上传文件
String filePath = this.getServlet().getServletContext().getRealPath("/") ; //取得当前路径
InputStream stream = fileone.getInputStream() ; //把文件读入
ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
/**//*
* 建立一个上传文件的输出流如果是linux系统请把"/" 换成 "/"
*/
OutputStream bos = new FileOutputStream(filePath + fileone.getFileName()) ;
request.setAttribute("fileName",filePath + "/" + fileone.getFileName() ) ;
int bytesRead = 0 ;
byte[] buffer = new byte[8192] ;
while( (bytesRead = stream.read(buffer,0,8192) ) != -1 )
...{
bos.write(buffer,0,bytesRead) ;
}
bos.close();
stream.close() ;
//上传文件完成
String oldurl= filePath + fileone.getFileName() ;
String newurl= filePath + "min_" + fileone.getFileName() ; //新的缩略图保存地址
convertImage convert = new convertImage() ;
convert.setFileInput(oldurl) ;
convert.setFileOutput(newurl) ;
convert.convert() ;
}
catch(Exception e)
...{
System.err.print(e) ;
}
return mapping.findForward("display");
}
}
// ---------------------------------------------------------------------------
//其它的看Myeclipse+struts源文件,源代码下次传上,