上传图片 webwork

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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值