您的位置:首页 > 编程语言 > Java开发

struts2--文件上传与下载

2016-01-19 14:29 357 查看
1、文件上传:

  --表单准备:

    > 需把HTML表单的enctype属性设置为multipart/form-data;

    > 需把HTML表单的method属性设置为post;

    > 需添加<input type=”file”> 字段;

  --struts2中,FileUpload拦截器和Jakarta Commons FileUpload组件可以完成文件的上传;

    > 1) 在Jsp页面使用file标签,如果需要一次上传多个文件,就必须使用多个file标签,并且他们的name必须相同(也可以使用list);

    > 2) 在Action中添加三个和文件上传相关的属性

      ①private File fieldName;

      ②private String fieldNameContentType;

      ③private String fieldNameFileName;

  --上传多个文件:

    > Action类中的三个属性修改为List类型即可(List<File>);

  --对上传文件进行限制(扩展名、大小等):

    > 通过配置FileUploadInterceptor拦截器的参数来进行限制;

      1) maximumSize--允许文件大小最大值,默认为2M;

      2) allowedTypes--允许上传文件的类型,使用 , 分隔;

      3) allowedExtensions--允许的扩展名,使用 , 分隔;

    > 定制错误消息,在资源文件中定义如下key/value:

      1) Struts.messages.error.uploading--文件出错

      2) struts.messages.error.file.too.large--文件超过限定大小

      3) struts.messages.error.content.type.not.allowed--文件内容类型不符

      4) struts.messages.error.file.extension.not.allowed--文件扩展名不符

2、文件下载:

  --struts2为文件下载提供了一种Stream结果类型,使用时不必准备一个Jsp也没页面;

  --Stream结果类型的参数设置:

    > contentType:被下载的文件的MIME类型,默认为text/plain

    > contentLength:大小,以字节为单位

    > contentDisposition:响应头,默认值为inline

    > inputName:Action中提供的文件的输入流,默认为inputStream

    > bufferSize:文件下载时缓冲区大小,默认为1024B

    > allowCaching:文件下载是是否允许使用缓存,默认为true

    > contentCharSet:下载文件时的字符编码;

  --Steam结果类型的参数可以在Action以属性的方式覆盖;

  


  --示例:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: