`

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;
    }

 

这样就可以获取到值了!

分享到:
评论

相关推荐

    struts2上传文件需要的jar包 commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar

    在Struts2中处理文件上传功能时,通常需要依赖两个关键的第三方库:`commons-fileupload`和`commons-io`。这两个jar包在Java文件上传处理中扮演着至关重要的角色。 `commons-fileupload-1.2.1.jar`是Apache Commons...

    struts1.2和commons-fileupload实现文件上传

    Struts1.2和Commons-Fileupload是Java Web开发中用于实现文件上传的两个重要组件。Struts1.2是Apache的一个开源框架,主要用于构建MVC(模型-视图-控制器)架构的Web应用程序,而Commons-Fileupload则是Apache ...

    commons-fileupload-1.3.3.zip

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

    struts2 文件下载需要的架包 commons-fileupload-1.2 commons-io-1.3.2

    以上就是关于Struts2中利用Apache Commons FileUpload和Apache Commons IO进行文件上传和下载的基本原理和实现流程。这两个库大大简化了处理文件操作的复杂性,提高了代码的可读性和可维护性。在实际开发中,应根据...

    commons-fileupload及源码

    7. **与其他库的集成**:Apache Commons FileUpload可与Servlet API、Spring MVC、Struts等Web框架无缝集成,简化了在这些框架中实现文件上传的复杂性。 源码分析对于理解其内部工作原理非常有帮助。`commons-...

    commons-fileupload-1.3.2.jar

    - Struts 2: 对于基于Struts 2的应用,可以通过配置`struts.multipart.parser`属性为`jakarta`来启用Apache Commons FileUpload。 总之,Apache Commons FileUpload是Java Web开发中处理文件上传不可或缺的工具,...

    commons-fileupload-1.2.2-bin.zip

    7. **与Struts、Spring等框架的整合**:Commons FileUpload库可以轻松与主流的Java Web框架集成,如Struts、Spring MVC等,使得文件上传功能的实现更加便捷。 总的来说,Apache Commons FileUpload库是Java开发人员...

    两篇网文:拦截器 Common-FileUpload

    通过这种方式,Struts2的拦截器和Common-FileUpload相结合,可以构建出强大且灵活的文件上传功能,同时保持代码的整洁和模块化。这不仅可以提高代码的可维护性,还能有效地避免常见的文件上传安全问题。对于Web...

    Common-FileUpload带进度条文件上传

    2. 带进度条的文件上传:在传统的文件上传过程中,用户通常无法得知文件上传的具体进度,只能等待上传完成。而带进度条的文件上传则解决了这个问题,它通常基于HTML5的File API,可以实时更新文件上传进度。例如,`...

    struts2-blank-2.0.14的lib中的jar包

    通过合理配置,开发者可以利用Struts2实现灵活的控制器层,将业务逻辑与表现层分离,提高代码的可维护性和可扩展性。同时,Struts2还提供了丰富的插件系统,可以轻松集成其他技术和库,如Spring、Hibernate等,...

    使用commons-fileupload实现的文件上传和下载

    在Java Web开发中,文件上传和下载是常见的功能需求,Apache Commons FileUpload库提供了一种高效、方便的方式来处理这些...在实际开发中,还可以结合Spring MVC或Struts等框架,进一步简化代码和提高代码的可维护性。

    利用Common-fileupload封装的文件上传组件...附上源码.

    此外,`Common-fileupload`与Servlet API紧密集成,使得它易于与其他Java Web框架如Spring、Struts等结合使用。 为了实现文件上传,你需要创建一个Servlet或者控制器,配置MultipartConfigElement以指定临时文件...

    commons-fileupload-1.2.1.jar

    2. **内存与磁盘管理**:FileUpload库考虑到了文件大小和服务器内存限制。对于小文件,它会存储在内存中;对于大文件,可以配置将其写入临时文件系统,以防止消耗过多内存。 3. **上传进度监听**:开发者可以注册...

    struts2-lib

    - `commons-fileupload`: 处理HTTP文件上传的库,Struts2使用它来支持用户上传文件。 - `commons-lang3`: Apache Commons提供的Java实用工具类库,增强Java的基本功能。 - `javassist`: 动态代码生成库,Struts2...

    commons-fileupload-1.3.1-src.tar.gz

    FileUpload库可以很好地与Spring MVC、Struts等其他框架集成,简化文件上传的处理逻辑。 9. **版本更新** “commons-fileupload-1.3.1”是FileUpload的一个稳定版本,相比早期版本,它可能包含了性能优化、新特性...

    commons-fileupload-1.2.1-bin.zip

    6. **与其他框架的集成**:Apache Commons FileUpload可方便地与Struts、Spring MVC等Web框架结合,提供优雅的文件上传解决方案。 总之,Apache Commons FileUpload 1.2.1是一个强大的文件上传组件,它简化了在Java...

    commons-fileupload.jar

    描述中提到的同样为"commons-fileupload.jar",暗示我们将讨论的是一个关于文件上传处理的Java组件。这个库可以解析HTTP请求,将文件内容分离并存储为临时文件或者内存对象,以便后续的业务逻辑进行处理。 标签中的...

    webwork2.2.7在action中利用commons-fileupload.jar进行上传或直接读取文件流的配置与源代码及实例详解

    总结来说,这个教程深入讲解了如何在WebWork 2.2.7环境中使用Apache Commons FileUpload来实现文件上传功能,包括配置、源代码实例以及异常处理。通过遵循这些步骤,开发者可以构建健壮的文件上传功能,同时处理大...

    commons-fileupload-1.2.1-bin 和 commons-io-1.4-bin.zip

    标题中的"commons-fileupload-1.2.1-bin"和"commons-io-1.4-bin.zip"分别指的是Apache Commons FileUpload 1.2.1版本和Apache Commons IO 1.4版本的二进制包。这两个组件在Java开发中扮演着重要的角色,尤其在处理...

Global site tag (gtag.js) - Google Analytics