【Struts】服务器文件的上传和下载

  • Java中获得文件的文件后缀

1 import java.io.*;
2 public class FileTest{
3    public static void main(String args[]){
4       File f =new File("TileTest.doc");
5       String fileName=f.getName();
6       String prefix=fileName.substring(fileName.lastIndexOf(".")+1);
7       System.out.println(prefix);
8   }
9 }
  •  struts.xml中上传文件类型的限制

1 <!-- 允许后缀名为png,bmp,jpg,doc,xls的文件上传 -->     
2 <param name="allowedExtensions">  
3     png,bmp,jpg,doc,xls  
4 </param> 
1 使用Struts文件上传功能,我们可以使用”文件类型“和”文件后缀名“两者中的一个来控制上传文件的类型/后缀名。但是,allowedTypes的优先级别高于allowedExtensions,  如果配置了allowedTypes则allowedExtensions将不再起效。
2 如果我们要利用allowedExtensions参数来控制上传文件的后缀名,则不能配置allowedTypes参数。
3 否则,如果allowedTypes参数有配置,那么allowedExtensions参数将不会再起效。

详情:http://blog.csdn.net/smcwwh/article/details/7349449

  • struts.xml上传文件大小的限制

1 <struts>
2     <constant name="struts.multipart.maxSize" value="50000000" />
3     
4 <package ...
5     <action ...
6        <interceptor-ref ...
7           <!-- 配置允许上传的文件大小,单位字节 -->        
8           <param name="maximumSize">40000000</param>

struts.multipart.maxSize和fileUpload拦截器的maximumSize属性分工不同,总结如下:

1.struts.multipart.maxSize掌控整个项目所上传文件的最大的Size。

  超过了这个size,后台报错,程序处理不了如此大的文件。

  fielderror里面会有如下的提示: the request was rejected because its size (16272982) exceeds the configured maximum (9000000)

2.fileUpload拦截器的maximumSize属性必须小于struts.multipart.maxSize的值。

  struts.multipart.maxSize默认2M,当maximumSize大于2M时,必须设置struts.multipart.maxSize的值大于maximumSize。

3.当上传的文件大于struts.multipart.maxSize时,系统报错 当上传的文件在struts.multipart.maxSize和maximumSize之间时,系统提示: File too large: file "MSF的概念.ppt" "upload__5133e516_129ce85285f__7ffa_00000005.tmp" 6007104 当上传的文件小于maximumSize,上传成功。

详情:http://www.cnblogs.com/forlina/archive/2011/09/08/2171404.html

原文地址:https://www.cnblogs.com/zhengbin/p/4972722.html