首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-09-15 
Struts2-Fileupload-带参上传图片代码jsp页面,带参数上传图片%@ page languagejava contentTypetext

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" 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-Fileupload-带参下传图片代码

热点排行