`

Struts2-Fileupload-带参上传图片代码

阅读更多

jsp页面,带参数上传图片

<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
	<head>
		<title>Struts 2 File Upload</title>
	</head>
	<body topmargin="2">
		<FORM action="/brand/test" method="post"
			ENCTYPE="multipart/form-data">
			<input type="hidden" name="username" value="username_value"/>
			<input type="hidden" name="password" value="password_value"/>
			<s:file name ="myFile" /> 
			<INPUT type="submit" value="上传">
		</FORM>
		<s:fielderror/> 
	</body>
</html>

  

struts.xml

<action name="test" class="brandAction" method="test">
	<interceptor-ref name="fileUpload">
		<param name="allowedTypes">
			image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/pjpeg,application/msword,application/vnd.ms-excel,application/x-shockwave-flash,flv-application/octet-stream,video/x-flv
	</param>
	</interceptor-ref>
	<interceptor-ref name="defaultStack" />
	<result name="img">/products.jsp</result>
	<result name="input">/products.jsp</result>
	<result name="success">/products.jsp</result>
	<result name="error">/fileupload.jsp</result>
</action>

 action

private static final long serialVersionUID = 0x85369b8626L;
    private static final int BUFFER_SIZE = 16384;
    private File myFile;
    private String fileName;
    public void setMyFileFileName(String fileName)
    {
        this.fileName = fileName;
    }

    public void setMyFile(File myFile)
    {
        this.myFile = myFile;
    }
	public String test() throws Exception{
		HttpServletRequest request = ServletActionContext.getRequest();
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		System.out.println("username="+username);
		System.out.println("password="+password);
		System.out.println("default-set-file"+myFile);
		String root = request.getRealPath("/");
		System.out.println("file-"+Upload.toFile(myFile,fileName,root,"/test/"));
		return SUCCESS;
	}

  upload.java

package tools;

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.util.Date;

import org.apache.struts2.ServletActionContext;

public class Upload {
	// 上传
	private static final long serialVersionUID = 0x85369b8626L;
	private static final int BUFFER_SIZE = 16384;

	public synchronized static String toFile(File path,String fileName,String root,String fileType) {				
		String imageFileName="";
		String random = String.valueOf(Math.random()).substring(2);
		try {
			Help.createDir(root+fileType);
			imageFileName = (new StringBuilder(String.valueOf(fileType
					+ random))).append(getExtention(fileName))
					.toString();

			File imageFile = new File((new StringBuilder(String
					.valueOf(root))).append(imageFileName)
					.toString());
			// 判断后缀类型
			int position1 = imageFileName.lastIndexOf('.');
			String fileName1 = codeToString(imageFileName
					.substring(position1 + 1));
			if (fileName1.trim().equals("jpg")
					|| fileName1.trim().equals("gif")
					|| fileName1.trim().equals("bmp")
					|| fileName1.trim().equals("swf")
					|| fileName1.trim().equals("jpeg")
					|| fileName1.trim().equals("pjpeg")
					|| fileName1.trim().equals("word")
					|| fileName1.trim().equals("excel")
					|| fileName1.trim().equals("flv")) {

				InputStream in = null;
				OutputStream out = null;
				try {
					in = new BufferedInputStream(new FileInputStream(path), BUFFER_SIZE);
					out = new BufferedOutputStream(new FileOutputStream(imageFile),
							BUFFER_SIZE);
					byte buffer[] = new byte[BUFFER_SIZE];
					while (in.read(buffer) > 0) {
						out.write(buffer);
					}
				} finally {
					if (in != null)
						in.close();
					if (out != null)
						out.close();
				}

			}
		} catch (Exception exception) {
			System.err.println(exception);
		}
		return imageFileName;

	}

	public static String getExtention(String fileName) {
		int pos = fileName.lastIndexOf(".");
		return fileName.substring(pos);
	}

	public static String codeToString(String str) {// 处理中文字符串的函数
		String s = str;
		try {
			byte tempB[] = s.getBytes("iso8859-1");
			s = new String(tempB);
			return s;
		} catch (Exception e) {
			return s;
		}

	}
}

   如要实现多图片上传,只要改两地方就行了。

   1.jsp页面

   

<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
	<head>
		<title>Struts 2 File Upload</title>
	</head>
	<body topmargin="2">
		<FORM action="/brand/test" method="post"
			ENCTYPE="multipart/form-data">
			<input type="hidden" name="username" value="username_value"/>
			<input type="hidden" name="password" value="password_value"/>
			<s:file name ="myFile" />
			<s:file name ="myFile1" />  
			<INPUT type="submit" value="上传">
		</FORM>
		<s:fielderror/> 
	</body>
</html>

 

2.action

private static final long serialVersionUID = 0x85369b8626L;
    private static final int BUFFER_SIZE = 16384;
    private File myFile;
    private File myFile1;
    private String fileName;
    private String fileName1;
    public void setMyFileFileName(String fileName)
    {
        this.fileName = fileName;
    }

    public void setMyFile(File myFile)
    {
        this.myFile = myFile;
    }
    public void setMyFile1FileName(String fileName)
    {
    	this.fileName1 = fileName;
    }
    public void setMyFile1(File myFile1)
    {
    	this.myFile1 = myFile1;
    }

 

这样就可以获取到值了!

分享到:
评论

相关推荐

    commons-fileupload-1.3.3.zip

    Apache Struts2 Commons FileUpload反序列化远程代码执行漏洞安全公告 安全公告编号:CNTA-2018-0029 2018年11月7日,国家信息安全漏洞共享平台(CNVD)收录了Apache Struts2 Commons FileUpload反序列化远程代码...

    Struts1 fileupload Struts1文件上传 源码下载

    Struts1的fileupload的文件上传

    java实现图片上传并显示

    java实现图片上传到数据库并显示,利用Struts2和commons-fileupload-1.2.1.jar,代码调试通过 完美运行。

    MyEclipse_9创建SSH2开发环境必须的独立包

    struts2 相关包-------------------------------------------------- xwork-2.0.5.jar webwork的核心库 ognl-2.6.11.jar OGNL表达式语言,struts2支持该EL freemarker-2.3.8.jar 表现层框架,定义了struts2的可视...

    用户注册和登录是每个系统的必须存在的一部分,基于Dwr+Struts2+Spring+Hibernate写了一个用户登录注册系统

    48. struts2-spring-plugin-2.0.11.2.jar 49. //struts2必须 50. xwork-2.0.5.jar  数据库设计(使用MySql数据库): Java代码 1. create table user 2. ( 3. id varchar(32) not null, 4. userName ...

    JAVA COS上传实例支持Struts2

    COS这个文件上传组件可以说在几个开源的上传文件组件中性能是非常优秀的,上传速度很快(相比fileUpload,smart等组件),但在使用Struts2结合COS文件上传时要注意Struts2实现了自己的MultiPartRequest,这个过滤后的...

    Struts2 in action中文版

    3.5.3 Struts 2公文包示例代码研究 58 3.6 小结 60 第4章 使用拦截器追加工作流 61 4.1 为什么要拦截请求 61 4.1.1 清理MVC 61 4.1.2 从拦截器受益 63 4.1.3 开发拦截器 64 4.2 拦截器的工作原理 64 4.2.1 总指挥...

    文件上传java处理后台

    文件上传java处理后台代码,struts2处理上传,commons-fileupload

    commons-io-1.3.1.jar和commons-io-1.3.1.jar

    Struts2默认使用的是Jakarta的Common-FileUpload框架来上传文件,因此,要在web应用中增加两个Jar文件:commons-fileupload-1.2.jar和commons-io-1.3.1.jar。它在原上传框架上做了进一步封装,简化了文件上传的代码...

    Struts2多文件上传与邮件附件发送

    2.fileUpload拦截器的maximumSize属性必须小于struts.multipart.maxSize的值。 struts.multipart.maxSize默认2M,当maximumSize大于2M时, 必须设置struts.multipart.maxSize的值大于maximumSize。 3.当上传的文件...

    android向struts服务器端上传文件代码

    这个代码是参考的网上代码自己修改写的,能实现android客户端向struts上传文件功能,用的是HttpURLConnection,注意设置请求头的编码为“utf-8",能解决文件名是中文的问题,不然会报错,rg.apache.commons.fileupload...

    struts2实现文件上传

    以前使用的是fileupload 框架来实现的文件上传但是在Servlet 中要写很多的代码来...使用的struts2框架后使用struts2中的文件上传功能特别的方便。有文档有代码对着我的文档看代码,有点javaee三大框架的朋友就能看懂

    Struts2文件上传示例

    自己使用struts2写的一个文件上传示例代码,可以实现对文件的大小控制、格式控制等,里面注释写得比较详细,给大家分享一下子

    struts2实现单个和多个文件上传示例代码

    直接将myeclipse工具导入项目fileupload即可测试

    web开发常用jar

    struts2-spring-plugin-2.0.14.jar struts2整合spring所需要的包 xwork-2.0.7.jar xwork核心包 antlr-2.7.6.jar 一个语言转换工具, Hibernate利用它实现 HQL 到 SQL 的转换模板相关操作需要包 javassist...

    jquery之ajaxfileupload异步上传插件(附工程代码)

    点我下载工程代码 由于项目需求,在处理文件... 所需环境: jquery.js ajaxfileupload.js struts2所依赖的jar包 及struts2-json-plugin-2.1.8.1.jar 编写文件上传的Action 代码如下: package com.ajaxfile.action; imp

    java开发常用jar包

    struts2-spring-plugin-2.0.14.jar struts2整合spring所需要的包 xwork-2.0.7.jar xwork核心包 antlr-2.7.6.jar 一个语言转换工具, Hibernate利用它实现 HQL 到 SQL 的转换模板相关操作需要包 javassist-3.9.0...

    Struts+Spring+Hibernate实现上传下载

    但如果您的项目是构建在Struts+Spring+Hibernate(以下称SSH)框架上的,这些大件就显得笨重而沧桑了,SSH提供了一个简捷方便的文件上传下载的方案,我们只需要通过一些配置并辅以少量的代码就可以完好解决这个问题...

    基于Hibernate和Struts的文件上传及下载.rar

    基于Hibernate和Struts的文件上传及下载源代码及详解,决不坑爹!

    JAVA WEB典型模块与项目实战大全

    第15章 在线文件上传和下载(struts 2.x+fileupload)  15.1 在线文件上传和下载模块原理  15.2 文件上传组件fileupload  15.3 初步使用文件上传组件(components-fileupload)  15.4 单文件的上传  15.5 多...

Global site tag (gtag.js) - Google Analytics