- 浏览: 1592548 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
本文介绍了:
1.基于表单的文件上传
2.Struts 2 的文件下载
3.Struts2.文件上传
4.使用FileInputStream FileOutputStream文件流来上传
5.使用FileUtil上传
6.使用IOUtil上传
7.使用IOUtil上传
8.使用数组上传多个文件
9.使用List上传多个文件
----1.基于表单的文件上传-----
fileupload.jsp
showFile.jsp
----2.手动上传-----
----3 Struts2.文件上传----
案例:使用FileInputStream FileOutputStream文件流来上传
action.java
struts.xml
up.jsp
success.jsp
案例:使用FileUtil上传
action.java
struts.xml
fileutilupload.jsp
fuuSuccess.jsp
案例:使用IOUtil上传
action.java
struts.xml
ioutilupload.jsp
iuuSuccess.jsp
案例:删除服务器上的文件
案例:使用数组上传多个文件
action.java
struts.xml
arrayUpload.jsp
arraySuccess.jsp
案例:使用List上传多个文件
action.java
strust.xml
listUpload.jsp
listSuccess.jsp
案例:Struts2 文件下载
简单文件下载 不含中文附件名
Struts.xml
down.jsp
在ie下 可以看到会打开一个 文件下载对话框 有 打开 保存 取消 按钮
google中 没有了
文件下载,支持中文附件名
action
struts.xml
down1.jsp
1.基于表单的文件上传
2.Struts 2 的文件下载
3.Struts2.文件上传
4.使用FileInputStream FileOutputStream文件流来上传
5.使用FileUtil上传
6.使用IOUtil上传
7.使用IOUtil上传
8.使用数组上传多个文件
9.使用List上传多个文件
----1.基于表单的文件上传-----
fileupload.jsp
<body> <form action="showFile.jsp" name="myForm" method="post" enctype="multipart/form-data"> 选择上传的文件 <input type="file" name="myfile"><br/><br/> <input type="submit" name="mySubmit" value="上传"/> </form> </body>
showFile.jsp
<body> 上传的文件的内容如下: <% InputStream is=request.getInputStream(); InputStreamReader isr=new InputStreamReader(is); BufferedReader br=new BufferedReader(isr); String content=null; while((content=br.readLine())!=null){ out.print(content+"<br/>"); } %> </body>
----2.手动上传-----
通过二进制刘获取上传文件的内容,并将上传的文件内容保存到服务器的某个目录,这样就实现了文件上传。由于这个处理过程完全依赖与开发自己处理二进制流,所以也称为“手动上传”。 从上面的第一个例子可以看到,使用二进制流获取的上传文件的内容与实际文件的内容有还是有一定的区别,包含了很多实际文本中没有的字符。所以需要对获取的内容进行解析,去掉额外的字符。
----3 Struts2.文件上传----
Struts2中使用Common-fileUpload文件上传框架,需要在web应用中增加两个Jar 文件, 即 commons-fileupload.jar. commons-io.jar 需要使用fileUpload拦截器:具体的说明在 struts2-core-2.3.4.jar \org.apache.struts2.interceptor\FileUploadInterceptor.class 里面 下面来看看一点源代码
public class FileUploadInterceptor extends AbstractInterceptor { private static final long serialVersionUID = -4764627478894962478L; protected static final Logger LOG = LoggerFactory.getLogger(FileUploadInterceptor.class); private static final String DEFAULT_MESSAGE = "no.message.found"; protected boolean useActionMessageBundle; protected Long maximumSize; protected Set<String> allowedTypesSet = Collections.emptySet(); protected Set<String> allowedExtensionsSet = Collections.emptySet(); private PatternMatcher matcher; @Inject public void setMatcher(PatternMatcher matcher) { this.matcher = matcher; } public void setUseActionMessageBundle(String value) { this.useActionMessageBundle = Boolean.valueOf(value); } //这就是struts.xml 中param为什么要配置为 allowedExtensions public void setAllowedExtensions(String allowedExtensions) { allowedExtensionsSet = TextParseUtil.commaDelimitedStringToSet(allowedExtensions); } //这就是struts.xml 中param为什么要配置为 allowedTypes 而不是 上面的allowedTypesSet public void setAllowedTypes(String allowedTypes) { allowedTypesSet = TextParseUtil.commaDelimitedStringToSet(allowedTypes); } public void setMaximumSize(Long maximumSize) { this.maximumSize = maximumSize; } }
官员文件初始值大小 上面的类中的说明 <li>maximumSize (optional) - the maximum size (in bytes) that the interceptor will allow a file reference to be set * on the action. Note, this is <b>not</b> related to the various properties found in struts.properties. * Default to approximately 2MB.</li> 具体说的是这个值在struts.properties 中有设置。 下面就来看 里面的设置 ### Parser to handle HTTP POST requests, encoded using the MIME-type multipart/form-data 文件上传解析器 # struts.multipart.parser=cos # struts.multipart.parser=pell #默认 使用jakata框架上传文件 struts.multipart.parser=jakarta #上传时候 默认的临时文件目录 # uses javax.servlet.context.tempdir by default struts.multipart.saveDir= #上传时候默认的大小 struts.multipart.maxSize=2097152
案例:使用FileInputStream FileOutputStream文件流来上传
action.java
package com.sh.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class MyUpAction extends ActionSupport { private File upload; //上传的文件 private String uploadContentType; //文件的类型 private String uploadFileName; //文件名称 private String savePath; //文件上传的路径 //注意这里的保存路径 public String getSavePath() { return ServletActionContext.getRequest().getRealPath(savePath); } public void setSavePath(String savePath) { this.savePath = savePath; } @Override public String execute() throws Exception { System.out.println("type:"+this.uploadContentType); String fileName=getSavePath()+"\\"+getUploadFileName(); FileOutputStream fos=new FileOutputStream(fileName); FileInputStream fis=new FileInputStream(getUpload()); byte[] b=new byte[1024]; int len=0; while ((len=fis.read(b))>0) { fos.write(b,0,len); } fos.flush(); fos.close(); fis.close(); return SUCCESS; } //get set }
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.i18n.encoding" value="utf-8"/> <constant name="struts.devMode" value="true"/> <constant name="struts.convention.classes.reload" value="true" /> <constant name="struts.multipart.saveDir" value="f:/tmp"/> <package name="/user" extends="struts-default"> <action name="up" class="com.sh.action.MyUpAction"> <result name="input">/up.jsp</result> <result name="success">/success.jsp</result> <!-- 在web-root目录下新建的一个 upload目录 用于保存上传的文件 --> <param name="savePath">/upload</param> <interceptor-ref name="fileUpload"> <!--采用设置文件的类型 来限制上传文件的类型--> <param name="allowedTypes">text/plain</param> <!--采用设置文件的后缀来限制上传文件的类型 --> <param name="allowedExtensions">png,txt</param> <!--设置文件的大小 默认为 2M [单位:byte] --> <param name="maximumSize">1024000</param> </interceptor-ref> <interceptor-ref name="defaultStack"/> </action> </package> </struts>
up.jsp
<body> <h2>Struts2 上传文件</h2> <s:fielderror/> <s:form action="up" method="post" name="upform" id="form1" enctype="multipart/form-data" theme="simple"> 选择文件: <s:file name="upload" cssStyle="width:300px;"/> <s:submit value="确定"/> </s:form> </body>
success.jsp
<body> <b>上传成功!</b> <s:property value="uploadFileName"/><br/> [img]<s:property value="'upload/'+uploadFileName"/>[/img] </body>
案例:使用FileUtil上传
action.java
package com.sh.action; import java.io.File; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; import java.util.UUID; import org.apache.commons.io.FileUtils; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class FileUtilUpload extends ActionSupport { private File image; //文件 private String imageFileName; //文件名 private String imageContentType;//文件类型 public String execute(){ try { if(image!=null){ //文件保存的父目录 String realPath=ServletActionContext.getServletContext() .getRealPath("/image"); //要保存的新的文件名称 String targetFileName=generateFileName(imageFileName); //利用父子目录穿件文件目录 File savefile=new File(new File(realPath),targetFileName); if(!savefile.getParentFile().exists()){ savefile.getParentFile().mkdirs(); } FileUtils.copyFile(image, savefile); ActionContext.getContext().put("message", "上传成功!"); ActionContext.getContext().put("filePath", targetFileName); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return "success"; } /** * new文件名= 时间 + 随机数 * @param fileName: old文件名 * @return new文件名 */ private String generateFileName(String fileName) { //时间 DateFormat df = new SimpleDateFormat("yyMMddHHmmss"); String formatDate = df.format(new Date()); //随机数 int random = new Random().nextInt(10000); //文件后缀 int position = fileName.lastIndexOf("."); String extension = fileName.substring(position); return formatDate + random + extension; } //get set }
struts.xml
<action name="fileUtilUpload" class="com.sh.action.FileUtilUpload"> <result name="input">/fileutilupload.jsp</result> <result name="success">/fuuSuccess.jsp</result> </action>
fileutilupload.jsp
<form action="${pageContext.request.contextPath }/fileUtilUpload.action" enctype="multipart/form-data" method="post"> 文件:<input type="file" name="image"/> <input type="submit" value="上传"/> </form>
fuuSuccess.jsp
body> <b>${message}</b> ${imageFileName}<br/> <img src="upload/${filePath}"/> </body>
案例:使用IOUtil上传
action.java
package com.sh.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID; import org.apache.commons.io.IOUtils; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class IOUtilUpload extends ActionSupport { private File image; //文件 private String imageFileName; //文件名 private String imageContentType;//文件类型 public String execute(){ try { if(image!=null){ //文件保存的父目录 String realPath=ServletActionContext.getServletContext() .getRealPath("/image"); //要保存的新的文件名称 String targetFileName=generateFileName(imageFileName); //利用父子目录穿件文件目录 File savefile=new File(new File(realPath),targetFileName); if(!savefile.getParentFile().exists()){ savefile.getParentFile().mkdirs(); } FileOutputStream fos=new FileOutputStream(savefile); FileInputStream fis=new FileInputStream(image); //如果复制文件的时候 出错了返回 值就是 -1 所以 初始化为 -2 Long result=-2L; //大文件的上传 int smresult=-2; //小文件的上传 //如果文件大于 2GB if(image.length()>1024*2*1024){ result=IOUtils.copyLarge(fis, fos); }else{ smresult=IOUtils.copy(fis, fos); } if(result >-1 || smresult>-1){ ActionContext.getContext().put("message", "上传成功!"); } ActionContext.getContext().put("filePath", targetFileName); } } catch (Exception e) { e.printStackTrace(); } return SUCCESS; } /** * new文件名= 时间 + 全球唯一编号 * @param fileName old文件名 * @return new文件名 */ private String generateFileName(String fileName) { //时间 DateFormat df = new SimpleDateFormat("yy_MM_dd_HH_mm_ss"); String formatDate = df.format(new Date()); //全球唯一编号 String uuid=UUID.randomUUID().toString(); int position = fileName.lastIndexOf("."); String extension = fileName.substring(position); return formatDate + uuid + extension; } //get set }
struts.xml
<action name="iOUtilUpload" class="com.sh.action.IOUtilUpload"> <result name="input">/ioutilupload.jsp</result> <result name="success">/iuuSuccess.jsp</result> </action>
ioutilupload.jsp
<form action="${pageContext.request.contextPath }/iOUtilUpload.action" enctype="multipart/form-data" method="post"> 文件:<input type="file" name="image"/> <input type="submit" value="上传"/> </form>
iuuSuccess.jsp
<body> <b>${message}</b> ${imageFileName}<br/> <img src="image/${filePath}"/> </body>
案例:删除服务器上的文件
/** * 从服务器上 删除文件 * @param fileName 文件名 * @return true: 从服务器上删除成功 false:否则失败 */ public boolean delFile(String fileName){ File file=new File(fileName); if(file.exists()){ return file.delete(); } return false; }
案例:使用数组上传多个文件
action.java
package com.sh.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Random; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; /** * @author Administrator * */ public class ArrayUpload extends ActionSupport { private File[] image; private String[] imageContentType; private String[] imageFileName; private String path; public String getPath() { return ServletActionContext.getRequest().getRealPath(path); } public void setPath(String path) { this.path = path; } @Override public String execute() throws Exception { for(int i=0;i<image.length;i++){ imageFileName[i]=getFileName(imageFileName[i]); String targetFileName=getPath()+"\\"+imageFileName[i]; FileOutputStream fos=new FileOutputStream(targetFileName); FileInputStream fis=new FileInputStream(image[i]); byte[] b=new byte[1024]; int len=0; while ((len=fis.read(b))>0) { fos.write(b, 0, len); } } return SUCCESS; } private String getFileName(String fileName){ int position=fileName.lastIndexOf("."); String extension=fileName.substring(position); int radom=new Random().nextInt(1000); return ""+System.currentTimeMillis()+radom+extension; } //get set }
struts.xml
<action name="arrayUpload" class="com.sh.action.ArrayUpload"> <interceptor-ref name="fileUpload"> <param name="allowedTypes"> image/x-png,image/gif,image/bmp,image/jpeg </param> <param name="maximumSize">10240000</param> </interceptor-ref> <interceptor-ref name="defaultStack"/> <param name="path">/image</param> <result name="success">/arraySuccess.jsp</result> <result name="input">/arrayupload.jsp</result> </action>
arrayUpload.jsp
<body> ===========多文件上传================= <form action="${pageContext.request.contextPath }/arrayUpload.action" enctype="multipart/form-data" method="post"> 文件1:<input type="file" name="image"/><br/> 文件2:<input type="file" name="image"/><br/> 文件3:<input type="file" name="image"/> <input type="submit" value="上传"/> </form> </body>
arraySuccess.jsp
<body> <b>使用数组上传成功s:iterator</b> <s:iterator value="imageFileName" status="st"> 第<s:property value="#st.getIndex()+1"/>个图片:<br/> [img]image/<s:property value="imageFileName[#st.getIndex()][/img]"/> </s:iterator> <br/><b>使用数组上传成功c:foreach</b> <c:forEach var="fn" items="${imageFileName}" varStatus="st"> 第${st.index+1}个图片:<br/> <img src="image/${fn}"/> </c:forEach> </body>
案例:使用List上传多个文件
action.java
package com.sh.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.List; import java.util.Random; import javax.servlet.Servlet; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class ListUpload extends ActionSupport { private List<File> doc; private List<String> docContentType; private List<String> docFileName; private String path; @Override public String execute() throws Exception { for(int i=0;i<doc.size();i++){ docFileName.set(i, getFileName(docFileName.get(i))); FileOutputStream fos=new FileOutputStream(getPath()+"\\"+docFileName.get(i)); File file=doc.get(i); FileInputStream fis=new FileInputStream(file); byte [] b=new byte[1024]; int length=0; while((length=fis.read(b))>0){ fos.write(b,0,length); } } return SUCCESS; } public String getFileName(String fileName){ int position=fileName.lastIndexOf("."); String extension=fileName.substring(position); int radom=new Random().nextInt(1000); return ""+System.currentTimeMillis()+radom+extension; } public String getPath() { return ServletActionContext.getRequest().getRealPath(path); }
strust.xml
<action name="listUpload" class="com.sh.action.ListUpload"> <interceptor-ref name="fileUpload"> <param name="allowedTypes"> image/x-png,image/gif,image/bmp,image/jpeg </param> <param name="maximumSize"> 10240000 </param> </interceptor-ref> <interceptor-ref name="defaultStack"/> <param name="path">/image</param> <result name="success">/listSuccess.jsp</result> <result name="input">/listupload.jsp</result> </action>
listUpload.jsp
<body> ===========List 多文件上传================= <form action="${pageContext.request.contextPath }/listUpload.action" enctype="multipart/form-data" method="post"> 文件1:<input type="file" name="doc"/><br/> 文件2:<input type="file" name="doc"/><br/> 文件3:<input type="file" name="doc"/> <input type="submit" value="上传"/> </form> <s:fielderror/> <s:form action="listUpload" enctype="multipart/form-data"> <s:file name="doc" label="选择上传的文件"/> <s:file name="doc" label="选择上传的文件"/> <s:file name="doc" label="选择上传的文件"/> <s:submit value="上传"/> </s:form> </body>
listSuccess.jsp
<body> <h3>使用List上传多个文件 s:iterator显示</h3> <s:iterator value="docFileName" status="st"> 第<s:property value="#st.getIndex()+1"/>个图片: <br/> <img src="image/<s:property value="docFileName.get(#st.getIndex())"/>"/><br/> </s:iterator> <h3>使用List上传多个文件 c:foreach显示</h3> <c:forEach var="fn" items="${docFileName}" varStatus="st"> 第${st.index}个图片<br/> <img src="image/${fn}"/> </c:forEach> </body>
案例:Struts2 文件下载
Struts2支持文件下载,通过提供的stram结果类型来实现。指定stream结果类型是,还需要指定inputName参数,此参数表示输入流,作为文件下载入口。
简单文件下载 不含中文附件名
package com.sh.action; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class MyDownload extends ActionSupport { private String inputPath; //注意这的 方法名 在struts.xml中要使用到的 public InputStream getTargetFile() { System.out.println(inputPath); return ServletActionContext.getServletContext().getResourceAsStream(inputPath); } public void setInputPath(String inputPath) { this.inputPath = inputPath; } @Override public String execute() throws Exception { // TODO Auto-generated method stub return SUCCESS; } }
Struts.xml
<action name="mydownload" class="com.sh.action.MyDownload"> <!--给action中的属性赋初始值--> <param name="inputPath">/image/1347372060765110.jpg</param> <!--给注意放回后的 type类型--> <result name="success" type="stream"> <!--要下载文件的类型--> <param name="contentType">image/jpeg</param> <!--action文件输入流的方法 getTargetFile()--> <param name="inputName">targetFile</param> <!--文件下载的处理方式 包括内联(inline)和附件(attachment)两种方式---> <param name="contentDisposition">attachment;filename="1347372060765110.jpg"</param> <!---下载缓冲区的大小--> <param name="bufferSize">2048</param> </result> </action>
down.jsp
<body> <h3>Struts 2 的文件下载</h3> <br> <a href="mydownload.action">我要下载</a> </body>
在ie下 可以看到会打开一个 文件下载对话框 有 打开 保存 取消 按钮
google中 没有了
文件下载,支持中文附件名
action
package com.sh.action; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class DownLoadAction extends ActionSupport { private final String DOWNLOADPATH="/image/"; private String fileName; //这个方法 也得注意 struts.xml中也会用到 public InputStream getDownLoadFile(){ return ServletActionContext.getServletContext().getResourceAsStream(DOWNLOADPATH+fileName); } //转换文件名的方法 在strust.xml中会用到 public String getDownLoadChineseFileName(){ String chineseFileName=fileName; try { chineseFileName=new String(chineseFileName.getBytes(),"ISO-8859-1"); } catch (Exception e) { e.printStackTrace(); } return chineseFileName; } @Override public String execute() throws Exception { // TODO Auto-generated method stub return SUCCESS; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } }
struts.xml
<action name="download" class="com.sh.action.DownLoadAction"> <param name="fileName">活动主题.jpg</param> <result name="success" type="stream"> <param name="contentType">image/jpeg</param> <!-- getDownLoadFile() 这个方法---> <param name="inputName">downLoadFile</param> <param name="contentDisposition">attachment;filename="${downLoadChineseFileName}"</param> <param name="bufferSize">2048</param> </result> </action>
down1.jsp
<body> <h3>Struts 2 的文件下载</h3> <br> <a href="download.action">我要下载</a> </body>
- Struts2_fileupload.zip (3.3 MB)
- 下载次数: 204
评论
2 楼
wyj983759591
2014-01-15
下载文件那个
return ServletActionContext.getServletContext().getResourceAsStream(DOWNLOADPATH+fileName);
怎么把临时文件删掉,
先删掉就不能return了
先return,后边在哪写删除
急用!
return ServletActionContext.getServletContext().getResourceAsStream(DOWNLOADPATH+fileName);
怎么把临时文件删掉,
先删掉就不能return了
先return,后边在哪写删除
急用!
1 楼
另一花生
2013-11-30
楼主厉害!
发表评论
-
解决getOutputStream() has already been called for this response
2014-07-30 19:16 3322java.lang.IllegalStateException ... -
Struts2 + ajaxFileUpload 异步上传文件
2013-12-04 19:33 1893ajaxFileUpload下载地址http://www.ph ... -
Struts2 Action 解析提交的XML
2013-10-16 12:30 1641package com.bjdata.bjsearch.p ... -
MyBatis+Spring+Struts2
2012-11-28 00:32 10628MyBatis3.1.1+Spring3.1.2+Struts ... -
Ibatis 整合spring + Struts2 加入OSCACHE
2012-11-14 00:10 4562说明: 使用 spring2.5 +ibatis2.3 ... -
Struts2中使用JfreeChart
2012-11-06 09:02 16471.jar commons-fileupload-1.2.2. ... -
Struts2整合SiteMesh
2012-11-05 10:33 76621.导入Struts2的jar 和 sitemesh.jar ... -
Struts2 编写安全策略(四十五)
2012-09-23 23:53 2300编写安全策略 包含(1 ... -
SSH2整合完整案例(四十三)
2012-09-14 09:34 20693注解配置:Struts2+Spring2.5+Hibernat ... -
Struts2 阻止表单重复 和 等待页面(四十四)
2012-09-23 21:13 2147表单重复提交现象 导 ... -
Struts2 文件上传,下载的类型(四十二)
2012-09-06 23:18 2006声明: 以下复制他人的!!! Struts2 文件上传 之 ... -
Struts2 常用标签使用(三十九)
2012-09-03 09:28 64311.append标签 使用append标签可以把多个集合对 ... -
Struts2 timer拦截器(三十二)
2012-08-31 02:17 20751.Strus2系统拦截器中,timer拦截器可以实现输出Ac ... -
Struts2 常用标签使用(三十九)
2012-09-03 00:50 51.append标签 使用append标签可以把多个集合对 ... -
Struts2 主题和模版设置(四十)
2012-09-03 20:24 4147----------------Struts2 主题----- ... -
Struts2 如何使用OGNL表达式(三十八)
2012-08-30 20:55 50861.OGNL是Object Graph Navitagtion ... -
Struts2 使用Validation框架验证数据(三十七)
2012-08-30 11:25 18468A:在Struts2的框架汇中,开发者可以通过继承Action ... -
Struts2 使用Validation框架验证数据(三十七)
2012-08-29 14:08 9A:在Struts2的框架汇中,开发者可以通过继承Action ... -
Struts2 iterator 标签遍历 Map,List,数组(三十六)
2012-08-26 18:30 205331.使用iterator 标签 遍历 数组,Map,List ... -
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
2012-08-26 02:52 19186---------------List------------ ...
相关推荐
这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...
在本篇中,我们将聚焦于Struts2中的文件上传、下载和删除功能,这些是Web应用中常见的需求。 1. 文件上传: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它处理了多部分表单数据。首先,你需要在`...
Struts2 文件上传是Web开发中的一个重要功能,它允许用户从他们的本地计算机向服务器传输文件。在Struts2框架中,文件上传是通过特定的拦截器实现的,这些拦截器处理了文件上传请求并提供了安全性和大小限制。下面将...
在Struts 2中,处理文件上传和下载是常见的需求,尤其是在用户交互丰富的Web应用中。为了实现这些功能,开发者需要依赖特定的库,如Apache Commons IO和Apache Commons FileUpload。这两个jar包是Struts 2文件操作的...
在"struts2 +jquey uploadify3.2 实现多文件上传,可预览、删除、排序"这个项目中,开发者使用了Uploadify 3.2版本,这是一个支持异步上传和批量上传的插件,能够很好地与Struts2框架整合。以下是实现这一功能的关键...
在本系统中,"struts框架写的文件上传下载系统"是利用Struts框架来实现文件的上传和下载功能,提供了一个平台让用户能够注册成为会员后进行文件操作。 首先,让我们深入理解Struts框架的核心概念: 1. **模型...
Struts2文件上传是Web开发中的一个重要功能,它允许用户从客户端向服务器传输文件。Struts2是一个基于MVC设计模式的Java web框架,它提供了丰富的功能来处理表单提交,包括文件上传。在这个场景中,我们将深入探讨...
在Struts2框架中,文件上传是一个常见的功能,允许用户通过表单提交文件到服务器进行存储或处理。在实现文件上传时,Struts2需要一个临时目录来保存上传的文件内容,直到它们被完全接收并处理。这个临时目录是通过...
在Struts2中,文件上传功能是一项常用且重要的特性,它允许用户在Web应用中上传文件到服务器。为了实现这一功能,开发者通常需要依赖特定的库,如Apache Commons FileUpload和Apache Commons IO。以下是关于Struts2...
开发者需要配置Struts2的`struts.xml`配置文件以启用文件上传,并指定允许的最大文件大小和数量。 3. **文件下载** 文件下载通常通过生成一个HTTP响应,设置合适的Content-Type和Content-Disposition头来实现。在...
在Struts2的配置文件中,我们需要定义一个对应的action配置,设置input和result,以便正确处理文件上传请求和响应。 接下来,涉及到的是Hibernate的部分。当图片文件被上传并保存在服务器上后,我们可能需要将文件...
struts2文件的上传与下载,包含超出指定文件大小之后的提示。更多详细内容,请参考博客:http://blog.csdn.net/qq_20889581/article/details/52838848
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java Web开发中。本项目通过Struts2实现了文件的上传和下载功能,这...总之,理解和掌握Struts2的文件上传下载机制对于Java Web开发来说是一项重要的技能。
Struts1.2框架是Apache组织开发的...通过学习这个源代码,开发者可以深入理解Struts1.2框架处理文件上传下载的机制,并将其应用到自己的项目中。同时,也可以借鉴其中的安全策略和用户体验设计,提升Web应用的交互性。
在探讨Struts2框架中的文件上传功能时,一个重要的概念就是如何通过`allowedTypes`来限制上传文件的类型。这对于确保系统的安全性和提高用户体验至关重要。 #### 1. Struts2 文件上传概述 Struts2是一个基于Java的...
【Spring+Struts+Hibernate 实现文件上传和下载】 在 J2EE 开发中,文件的上传和下载是一项基础但重要的功能。SSH(Struts、Spring、Hibernate)框架提供了便捷的方式来处理这一问题,无需依赖像 SmartUpload 或 ...
在Struts2中,处理文件上传和下载是常见的需求。为了实现这一功能,开发人员通常需要依赖两个关键的第三方库:Apache Commons FileUpload和Apache Commons IO。 Apache Commons FileUpload是一个专门用于处理HTTP...
在这个“Struts2 上传下载项目”中,我们将深入探讨如何利用Struts2实现文件上传与下载功能,并结合MySQL数据库、DAO(数据访问对象)层以及MVC架构来构建一个完整的应用。 1. **Struts2框架基础** Struts2的核心...
在Struts2中,文件上传功能是通过第三方库来实现的,其中最常用的就是Apache Commons FileUpload和Apache Commons IO。这里提到的"commons-fileupload-1.2.1.jar"和"commons-io-1.4.jar"就是这两个库的特定版本。 *...