Struts文件上传机制

 <action name="fileUp" class="FileUpload.FileUpload">
            <result>/message.jsp</result>
        </action>

单文件上传

1.Action类

 1 package FileUpload;
 2
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7
 8 import javax.servlet.ServletContext;
 9
10 import org.apache.struts2.ServletActionContext;
11
12 import com.opensymphony.xwork2.ActionSupport;
13
14 public class FileUpload  extends ActionSupport{
15
16     private File fileName;
17     private String fileNameContentType;
18     private String fileNameFileName;
19
20     public String execute() throws Exception{
21
22         ServletContext servletContext = ServletActionContext.getServletContext();
23         String dir = servletContext.getRealPath("/files/"+fileNameFileName);
24         System.out.println(dir);

25         FileOutputStream outputStream = new FileOutputStream(dir);
26         FileInputStream inputStream = new FileInputStream(fileName);
27         byte[] buffer = new byte[1024];
28         int len = 0;
29 //        从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中.读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。
30         while((len = inputStream.read(buffer))!=-1){
31 //            将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。
32             outputStream.write(buffer, 0, len);
33         }
34         inputStream.close();
35         outputStream.close();

36         return SUCCESS;
37     }
38
39     public File getFileName() {
40         return fileName;
41     }
42
43     public void setFileName(File fileName) {
44         this.fileName = fileName;
45     }
46
47     public String getFileNameContentType() {
48         return fileNameContentType;
49     }
50
51     public void setFileNameContentType(String fileNameContentType) {
52         this.fileNameContentType = fileNameContentType;
53     }
54
55     public String getFileNameFileName() {
56         return fileNameFileName;
57     }
58
59     public void setFileNameFileName(String fileNameFileName) {
60         this.fileNameFileName = fileNameFileName;
61     }
62
63
64
65 }

2.

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 </head>
 7 <body>
 8
 9 <form action="/Struts2FileUpload/fileUp.action" method="post" enctype ="multipart/form-data">
10
11 <input type="file" name="fileName" >
12 <input type="submit" value="提交">
13 </form>
14
15 </body>
16 </html>

3.

 <action name="fileUp" class="FileUpload.FileUpload">
            <result>/message.jsp</result>
 </action>
时间: 2024-10-16 13:57:44

Struts文件上传机制的相关文章

struts文件上传(多文件)

第01步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

struts——文件上传

上传文件在一个系统当中是一个很常用的功能,也是一个比较重要的功能.今天我们就一起来学习一下Struts2如何上传文件. 今天讲的上传文件的方式有三种: 1,以字节为单位传输文件: 2,Struts2封装的一种方式: 3,以字符的方式传输文件. 其实这三种方式都差不 多,都是将文件先从客户端一临时文件的形式,传输到服务器的临时文件夹下,然后在将该临时文件复制到我们要上传的目录.另外,有一个需要注意,就是上传过 程中产生的这些临时文件,Struts2不会自动清理,所以我们需要手动清理临时文件,这一个

Django文件上传机制用法详解(转)

Django文件上传机制用法详解 http://www.jbxue.com/article/24283.html 分享下Django文件上传机制的用法,包括基本上传文件的原理,以及如何处理上传文件的方法,需要的朋友参考下. 当Django处理上传一个文件时,文件数据被放在request.FILES中. 这个文档解释文件怎么样被存储在磁盘上或者内存中,怎样定制默认的行为. 一,基本文件上传考虑一个包含FileField的简单的表单: 复制代码 代码示例: from  django  import 

Struts文件上传的大小及类型的限制

前几天讲到struts文件上传,设置了fileUpload拦截器的参数以后,超过大小的文件被限制上传,但是类型不匹配的,却没有得到限制,今天有时间找了一下原因,发表一篇博文,请遇到问题的同学,参考一下: 在struts-default.xml中可以看到fileUpload的拦截器对应的类org.apache.struts2.interceptor.FileUploadInterceptor,查看源码会发现,类中的几个属性: protected Long maximumSize; protecte

struts文件上传

如果在表单中上传文件,表单的enctype属性为multipart/form-data struts默认上传文件大小为2M,如果需要修改,在配置文件中设置 <constant name="struts.multipart.maxSize" value="31457280"/> jsp页面 <input type="file" name="file"/> action中属性 private File fi

Struts文件上传allowedTypes问题,烦人的“允许上传的文件类型”

Struts的文件上传问题,相信很多人都会使用allowedTypes参数来配置允许上传的文件类型,如下. [html] view plaincopy <param name="allowedTypes"> image/png,image/bmp,image/jpg </param> 但是,用过这个参数的人都知道,allowedTypes是“文件类型”, 而不是“文件后缀名”,文件类型与文件后缀名有什么区别呢? 就如后缀名为bmp的图片的文件类型为image/b

struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题

<interceptor-ref name="fileUpload"> <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/pjpeg</param> <!-- 图片不能大于5M --> <param name="maximumSize">5242880</param> </

struts文件上传(单文件)

第01步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

struts 文件上传下载

上传 1.编写上传action类 UploadAction.java 1 package jxf.b_upload; 2 3 import java.io.File; 4 import java.io.IOException; 5 6 import javax.servlet.http.HttpServletRequest; 7 8 import org.apache.commons.io.FileUtils; 9 import org.apache.struts2.ServletActionC