struts框架解决多文件的上传问题(首次更博……)
来源:互联网 发布:淘宝ulzzang短发女模特 编辑:程序博客网 时间:2024/05/16 09:18
用了CSDN好长时间了,一直都是在看人家的博客,人家的经验,现在第一次在这里写属于自己的博客,最近学习struts2.0框架,,正好学到使用struts框架解决多文件的上传。
好了,,话不多说,,开干!
下面是struts中action中的代码
package com.ruide.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;public class UpLoadAction { //实现struts框架上传的action必须要有这三个变量 //文件数组 private File []photo; //文件类型 private String []photoContentType; //文件名 private String []photoFileName; //对应的get和set 属性 public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public File[] getPhoto() { return photo; } public void setPhoto(File[] photo) { this.photo = photo; } public String[] getPhotoContentType() { return photoContentType; } public void setPhotoContentType(String[] photoContentType) { this.photoContentType = photoContentType; } public String[] getPhotoFileName() { return photoFileName; } public void setPhotoFileName(String[] photoFileName) { this.photoFileName = photoFileName; } //action中execute方法 public String execute()throws Exception{ for (int i = 0; i < photo.length; i++) { //System.out.println(photo.length); this.writeFile(photo[i], photoFileName[i]); } return null; } //writeFile方法,,实现对文件的读写 public void writeFile(File f,String fname)throws Exception{ //获取request对象 HttpServletRequest request=ServletActionContext.getRequest(); //得到"files"的路径 String realpath=request.getRealPath(""); realpath+="\\files\\"; //使用输入流将文件读取出来 InputStream in=new FileInputStream(f); //创建输出流,然后针对输入流的读取的内容写入文件 OutputStream out=new FileOutputStream(realpath+"\\"+fname); int a=-1; while ((a=in.read())!=-1) { out.write(a); } //关闭输入输出流 out.close(); in.close(); } }
然后就是前台的界面了,,当然了,,咱们做后端的也不是很注重前台的一些东西,,所以我就直接写了一个简单的多元化表单,,贴代码……
—-这是upload.jsp中的代码,,就是一个简单的多元化form表单。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'upload.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form enctype="multipart/form-data" action="upload.action" method="post"> 照片1:<input name="photo" type="file" /><br /> 照片2:<input name="photo" type="file" /><br /> 照片3:<input name="photo" type="file" /><br /> <input name="photo" type="submit" /><br /> </form> </body></html>
这些就是整个struts框架解决上传问题的核心代码,,但是呢,,要将前台jsp获取到的数据传递到后端action中进行处理,还是需要一些配置文件的。
下面就是struts的配置文件struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <package name="default" namespace="/" extends="struts-default"> <action name="hello" class="com.ruide.action.HelloAction"> <result name="success" type="redirect">/index.jsp</result> </action> <action name="doregister" class="com.ruide.action.DoRegisterAction"> </action> <action name="up" class="com.ruide.action.UpAction"></action> </package></struts>
这样呢就可以实现action与jsp之间的联系,能够把jsp接受到的文件交给action处理。
但是呢,我们用的是struts框架,,不要忘了这一点,,必要的配置还是要有的,,比如说struts框架需要的基础性的jar包,,还有就是上传下载所用的jar包,在下面我已经列出来了。。。
- asm-3.3.jar
- asm-commons-3.3.jar
- asm-tree-3.3.jar
- commons-fileupload-1.3.jar
- commons-io-2.2.jar
- commons-lang3-3.1.jar
- commons-logging-1.1.3.jar
- freemarker-2.3.19.jar
- javassist-3.11.0.GA.jar
- log4j-1.2.17.jar
- ognl-3.0.6.jar
- struts2-core-2.3.16.jar
- xwork-core-2.3.16.jar
还有就是要在web工程里配置struts框架:
web.xml配置文件里配置:
<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts Blank</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list></web-app>
对于web.xml的配置,,只要是引入了struts框架,那么这个配置就是一定的,,写死的。
好了,,,至此为之,,这些就是struts框架实现文件的上传下载。
阅读全文
1 0
- struts框架解决多文件的上传问题(首次更博……)
- 解决struts多文件上传出现的问题
- 文件上传(Struts框架)
- Java三大框架之struts的多文件上传
- Struts框架之文件的上传
- 基于struts框架的文件上传
- SSH框架之Struts的文件上传
- struts 多文件上传--多个文件的name问题
- 解决SSH框架中Struts不能接受Android的不同Key值上传图片问题
- struts 文件上传(主框架、子框架传值等问题)
- struts上传文件问题
- struts的多文件上传
- 再问struts多文件上传的问题
- 自学SSH框架之---struts(六):struts的上传文件功能
- struts 2 的 上传文件问题
- struts文件上传和遇到的问题
- struts文件上传和遇到的问题
- struts上传大文件失败的问题
- selenium java-等待元素加载出来后再执行下一步
- Jboss Seam 注解总结
- [Leetcode] 300. Longest Increasing Subsequence 解题报告
- 定时器Timer
- ORALCE 导入导出
- struts框架解决多文件的上传问题(首次更博……)
- js 开篇
- java数字验证码功能实现
- JMeter测试工具使用笔记
- 批处理作业调度问题
- ECharts 点击事件的 param参数
- "_OBJC_CLASS_$_CMMotionManager" referenced from:
- Ubuntu下在环境中配置opencv
- Selenium 的具体操作(浏览器,鼠标,键盘等)