上传图片 webwork

来源:互联网 发布:mysql e update 编辑:程序博客网 时间:2024/05/29 11:36
1.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>File Upload</title>

<Script language="javascript">
function jiancha()
{
str= form.files.value;
strs=str.toLowerCase();
lens=strs.length;
extname=strs.substring(lens-4,lens);
if(extname!=".jpg" && extname!=".gif"&& extname!=".bmp")
{
alert("请选择jpg或gif或bmp文件!");
return (false);
}
return (true);
}
</script>
</head>
<body>
<form name="form"action="upload.action" enctype="multipart/form-data" method="POST">
<p>
<input type="hidden" name="fileFileName"/><input type="file" name="files"onChange="jiancha()"><br>
<input type="hidden" name="path" value="E:/resin-3.0/webapps/ebusiness/uploadtmp/">
<p>
<input type="submit" name="上载" value="上载"/>
</form>
</body>
</html>

success.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="ww" uri="webwork" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>File Upload</title>
<script>
function view(){t.innerHTML="<img src='"+myform.T1.value+"'>"}
</script>
</head>
<body onLoad="view()">
<a href=" /ebusiness/uploadtmp/<ww:property value="srcName"/>"
target="_blank">查看图片</a>
<a href=" /ebusiness/uploadtmp/min<ww:property value="srcName"/>"
target="_blank">查看小图片</a>
<form method="POST" name=myform><input type="hidden" name="T1"
value="/ebusiness/uploadtmp/min<ww:property value="srcName"/>" >
</form>
<div id="t"></div>
</body>
</html>

 

UploadAction .java

package com.examples;

import com.opensymphony.xwork.Action;
import com.opensymphony.xwork.ActionContext;

import com.sun.image.codec.jpeg.*;

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.*;

public class UploadAction implements Action {
File file;
String fileContentType;
String fileFileName;
File[] files;
String[] filesContentType;
String[] filesFileName;
private boolean debug=true;
String srcName ;//文件名
String path ; //存储文件路径
String url;

public String execute() throws Exception {
ActionContext context=ActionContext.getContext();
Map map=context.getParameters();
context.getValueStack();
System.out.println("filesFileName="+filesFileName);

if(filesFileName!=null)
{
for (int i = 0; i < filesFileName.length; i++) {
srcName = filesFileName[i];
System.out.println("srcName="+srcName);
url = path + srcName;
System.out.println("url="+url);
File target = new File(url);
if (target.exists()) {
target.delete();
}
files[i].renameTo(target);
}
}

java.io.File file1 = new java.io.File(url); //读入刚才上传的文件
String newurl= path + "min"+srcName; //新的缩略图保存地址
Image src = javax.imageio.ImageIO.read(file1);
//构造Image对象
float tagsize=200;
int old_w=src.getWidth(null); //得到源图宽
int old_h=src.getHeight(null);
int new_w=0;
int new_h=0; //得到源图长
int tempsize;
float tempdouble;
if(old_w>old_h){
tempdouble=old_w/tagsize;
}else{
tempdouble=old_h/tagsize;
}
new_w=Math.round(old_w/tempdouble);
new_h=Math.round(old_h/tempdouble);//计算新图长宽
BufferedImage tag = new
BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); //绘制缩小后的图
FileOutputStream newimage=new FileOutputStream(newurl); //输出到文件流
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
encoder.encode(tag); //近JPEG编码
newimage.close();

return SUCCESS;
}

public String doDefault() throws Exception {
return INPUT;
}

public void setFile(File file) {
this.file = file;
}

public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}

public void setFiles(File[] files) {
this.files = files;
if(files==null)
{
return ;
}
if(debug)
{
for (int i = 0; i < files.length; i++) {
System.out.println(files[i].getName()) ;
}
}
}

public void setFilesContentType(String[] filesContentType) {
this.filesContentType = filesContentType;
}

public void setFilesFileName(String[] filesFileName) {
this.filesFileName = filesFileName;
}

public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}

public void setDebug(boolean debug) {
this.debug = debug;
}
public String getPath() {
return path;
}

public void setPath(String path) {
this.path = path;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}
public String getSrcName() {
return srcName;
}

public void setSrcName(String srcName) {
this.srcName = srcName;
}
public File getFile() {
return file;
}

public String getFileContentType() {
return fileContentType;
}

public String getFileFileName() {
return fileFileName;
}

public File[] getFiles() {
return files;
}

public String[] getFilesContentType() {
return filesContentType;
}

public String[] getFilesFileName() {
return filesFileName;
}
}

upload.xml

<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>

<package name="upload" extends="webwork-default" namespace="/examples">
<interceptors>
<interceptor name="upload"
class="com.opensymphony.webwork.interceptor.FileUploadInterceptor">
<param name="allowedTypes">image/jpeg/jpg/bmp/txt</param>
<param name="maximumSize">10000000</param>
</interceptor>
<interceptor-stack name="fileUploadStack">
<interceptor-ref name="upload"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="fileUploadStack"/>
<action name="upload" class="com.examples.UploadAction">

<result name="success">success.jsp</result>
<result name="input">input.jsp</result>
</action>
</package>

</xwork>