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;
}
这样就可以获取到值了!
分享到:
相关推荐
Apache Struts2 Commons FileUpload反序列化远程代码执行漏洞安全公告 安全公告编号:CNTA-2018-0029 2018年11月7日,国家信息安全漏洞共享平台(CNVD)收录了Apache Struts2 Commons FileUpload反序列化远程代码...
Struts1的fileupload的文件上传
java实现图片上传到数据库并显示,利用Struts2和commons-fileupload-1.2.1.jar,代码调试通过 完美运行。
struts2 相关包-------------------------------------------------- xwork-2.0.5.jar webwork的核心库 ognl-2.6.11.jar OGNL表达式语言,struts2支持该EL freemarker-2.3.8.jar 表现层框架,定义了struts2的可视...
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 ...
COS这个文件上传组件可以说在几个开源的上传文件组件中性能是非常优秀的,上传速度很快(相比fileUpload,smart等组件),但在使用Struts2结合COS文件上传时要注意Struts2实现了自己的MultiPartRequest,这个过滤后的...
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处理后台代码,struts2处理上传,commons-fileupload
Struts2默认使用的是Jakarta的Common-FileUpload框架来上传文件,因此,要在web应用中增加两个Jar文件:commons-fileupload-1.2.jar和commons-io-1.3.1.jar。它在原上传框架上做了进一步封装,简化了文件上传的代码...
2.fileUpload拦截器的maximumSize属性必须小于struts.multipart.maxSize的值。 struts.multipart.maxSize默认2M,当maximumSize大于2M时, 必须设置struts.multipart.maxSize的值大于maximumSize。 3.当上传的文件...
这个代码是参考的网上代码自己修改写的,能实现android客户端向struts上传文件功能,用的是HttpURLConnection,注意设置请求头的编码为“utf-8",能解决文件名是中文的问题,不然会报错,rg.apache.commons.fileupload...
以前使用的是fileupload 框架来实现的文件上传但是在Servlet 中要写很多的代码来...使用的struts2框架后使用struts2中的文件上传功能特别的方便。有文档有代码对着我的文档看代码,有点javaee三大框架的朋友就能看懂
自己使用struts2写的一个文件上传示例代码,可以实现对文件的大小控制、格式控制等,里面注释写得比较详细,给大家分享一下子
直接将myeclipse工具导入项目fileupload即可测试
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.js ajaxfileupload.js struts2所依赖的jar包 及struts2-json-plugin-2.1.8.1.jar 编写文件上传的Action 代码如下: package com.ajaxfile.action; imp
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(以下称SSH)框架上的,这些大件就显得笨重而沧桑了,SSH提供了一个简捷方便的文件上传下载的方案,我们只需要通过一些配置并辅以少量的代码就可以完好解决这个问题...
基于Hibernate和Struts的文件上传及下载源代码及详解,决不坑爹!
第15章 在线文件上传和下载(struts 2.x+fileupload) 15.1 在线文件上传和下载模块原理 15.2 文件上传组件fileupload 15.3 初步使用文件上传组件(components-fileupload) 15.4 单文件的上传 15.5 多...