zoukankan      html  css  js  c++  java
  • struts的上传下载

    文件上传
    添加jar包
    commons-io-1.3.2.jar
    commons-fileupload-1.2.1.jar

    前台页面 form表单 method值为post 添加"enctype"属性,值为"multipart/form-data"
    <form action="uploadFile" enctype="multipart/form-data" method="post">
    <input type="file" name="upload"/><br>
    <input type="submit" value="上传文件"/>
    </form>

    后台action 定义四个属性 设置setter和getter方法
    private File upload;//上传的文件
    private String uploadContentType;//文件上传类型
    private String uploadFileName;//上传文件名称
    private String savePath;//保存的路径 该属性的值在struts.xml文件中配置

    //savePath的getter方法需要修改下
    public String getSavePath() {
    //获取文件上传的时候绝对路径
    return ServletActionContext.getServletContext().getRealPath(savePath);
    }


    上传文件方法
    public String uploadFile() throws Exception{
    byte[] buffer = new byte[1024];
    FileInputStream fis = new FileInputStream(getUpload());
    FileOutputStream fos = new FileOutputStream(getSavePath()+"\"+this.getUploadFileName());
    int length=fis.read(buffer);
    while(length>0){
    fos.write(buffer,0,length);
    length = fis.read(buffer);
    }

    fis.close();
    fos.flush();
    fos.close();
    return "success";
    }

    struts配置文件
    <action name="uploadFile" class="com.zhh.action.UploadAction" method="uploadFile">
    <!-- 设置下载的文件所在的路径 -->
    <param name="savePath">/uploadfile</param>
    <result name="success">upload_success.jsp</result>
    </action>

    文件下载
    前台页面
    <a href="download?fileName=${uploadFileName }">download</a>

    后台action 定义四个属性 设置setter和getter方法
    //读取下载文件的目录
    private String inputPath;
    //下载文件的文件名
    private String fileName;
    //读取下载文件的输入流
    private InputStream inputStream;
    //下载文件的类型
    private String conetntType;

    //创建InputStream输入流 以流的方式读取文件 inputStream属性的getter方法需要编写
    public InputStream getInputStream() throws FileNotFoundException{
    String path=ServletActionContext.getServletContext().
    getRealPath(inputPath);
    return new BufferedInputStream(new FileInputStream(path+"\"+fileName));
    }

    public String download(){
    return "success";
    }

    struts配置文件
    <action name="download" class="com.zhh.action.DownloadAction" method="download">
    <!-- 设置下载的文件所在的路径 -->
    <param name="inputPath">/uploadfile</param>
    <result name="success" type="stream">
    <!-- 允许下载的文件的类型:指定为所有的二进制的文件类型,去tomcat的wen.xml里面搜索.exe -->
    <param name="contentType">application/octet-stream</param>
    <!-- 对应的就是Action种的属性,返回流的属性,【其实就是getInputStream()】 -->
    <param name="inputName">inputStream</param>
    <!-- 下载头,包括:浏览器显示的文件名 -->
    <param name="contentDisposition">
    attachment;filename="${fileName}"
    </param>
    <!-- 缓冲区大小设置 -->
    <param name="bufferSize">4096</param>
    </result>
    </action>

  • 相关阅读:
    android ndk 调试问题
    音频
    文件分割与c语言文件结
    本机抓包
    rtm匹 转
    mac 工具等效率
    【MySQL】Explain Tutorial
    Sed基本入门[5] Sed Hold and Pattern Space Commands
    Sed基本入门[3] Regular Expressions
    Protocol Buffer Basics
  • 原文地址:https://www.cnblogs.com/zhuhuibiao/p/9825214.html
Copyright © 2011-2022 走看看