struts2.0上传和下载文件

    技术2022-05-11  3

    在Struts.xml中的写法:

     

    <action name="upload" class="com.text.action.UpLoadAction">       <result name="success">/upload/uploadResult.jsp</result>       <result name="input">/upload/update.jsp</result>       <interceptor-ref name="fileUpload">        <param name="maximumSize">409600</param>        <!--         <param name="allowedTypes">application/vnd.ms-powerpoint</param>         -->                </interceptor-ref>              <interceptor-ref name="defaultStack"></interceptor-ref>             </action>

     

    在UpLoadAction中:

     

    import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.List;

    import org.apache.struts2.ServletActionContext;

    import com.opensymphony.xwork2.ActionSupport;

     

    public class UpLoadAction extends ActionSupport {

     private String username; private List<File> file; private List<String> fileFileName; private List<String> fileContentType;

     

     public String getUsername() {  return username; }

     

     

     public void setUsername(String username) {  this.username = username; } 

     

     

     public List<File> getFile() {  return file; }

     

     

     public void setFile(List<File> file) {  this.file = file; }

     

     

     public List<String> getFileFileName() {  return fileFileName; }

     

     

     public void setFileFileName(List<String> fileFileName) {  this.fileFileName = fileFileName; }

     

     

     public List<String> getFileContentType() {  return fileContentType; }

     

     

     public void setFileContentType(List<String> fileContentType) {  this.fileContentType = fileContentType; }

     

     

     @Override public String execute() throws Exception {

      for(int i=0;i<file.size();i++){      InputStream is = new FileInputStream(file.get(i));

       String root = ServletActionContext.getRequest().getRealPath("/upload");

       File destFile = new File(root, this.getFileFileName().get(i));

       OutputStream os = new FileOutputStream(destFile);

       byte[] buffer = new byte[400];

       int length = 0;

       while ((length = is.read(buffer)) > 0) {    os.write(buffer, 0, length);   }   is.close();   os.close();       }    return SUCCESS; }}

     

    ==============================================

     

     

    下载文件:

    在struts.xml中

     

    action name="download" class="com.text.action.DownAction">       <result name="success" type="stream">        <param name="contentDisposition">filename="/aqiang.jpg"</param>        <param name="inputName">downLoadFile</param>       </result><!-- 这里的strem专门提供下载,在源文件strtus-default.xml中已经定义 -->      </action>

     

     

    在DownAction中:

     

    import java.io.InputStream;

    import com.opensymphony.xwork2.ActionSupport;import org.apache.struts2.ServletActionContext;

    public class DownAction extends ActionSupport {

     public InputStream getDownLoadFile() {

      return ServletActionContext.getServletContext().getResourceAsStream(    "/upload/aqiang.jpg"); }

     @Override public String execute() throws Exception {    return SUCCESS;   }

    }

     


    最新回复(0)