zoukankan      html  css  js  c++  java
  • JAVAWeb SSH框架 上传文件,如2007的EXCEL

    下面的代码是上传EXCEL的代码,其实,就是在上传文件到服务器,代码都差不多,只是接收的文件的类型改一下即可。

    1.jsp 用的是struts2 标签

    代码:

    <s:file name="upload">

    用form表单提交到Action

    2.struts2 代码:

           <action name="UploadExcel" class="com.javaweb.action.UploadExcelAction"
          method="uploadExcel">
                <result name="uploadExcelSuccess" >
                view/uploadExcelSuccess.jsp
                </result>    
                <result name="error" >
                  view/uploadExcelErr.jsp
                </result>    
                <param name="allowedTypes">application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</param>   //允许上传的文件类型,这个是2007EXCEL,即XLSX后缀
            </action>  

    3.Action代码:

       public class UploadExcelAction extends ActionSupport {

     private File upload;(get,set代码省略,自动生成的代码而已)//用于接住jsp传过来的EXCEL文件
        private String uploadFileName;(get,set代码省略 ,自动生成的代码而已)//这个值不用进行处理,就能得到你传过来的EXCEL的文件名
      

     //uploadContentType这个值不用进行处理,就能得到你传过来的EXCEL文件的类型

       //如: 如果是2007的EXCEL,就是application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

     private String uploadContentType;(get,set代码省略,自动生成的代码而已)


        private String allowedTypes;(get,set代码省略,自动生成的代码而已)//接住在struts2设置的值,用于进行文件类型验证

     private String savePath; //设置绝对路径,用于存放上传的EXCEL,get方法代码修改了,set 方法不变如下:

     public String getSavePath() {
            return savePath = ServletActionContext.getServletContext().getRealPath(
                    "/uploadExcel");
        }

        public void setSavePath(String savePath) {
            this.savePath = savePath;
        }

     public String uploadExcel() throws Exception {
            // 验证文件格式
            boolean flag = false;
            String[] allowedTypesStr = allowedTypes.split(",");
            for (int i = 0; i < allowedTypesStr.length; i++) {
                if (uploadContentType.equals(allowedTypesStr[i])) {
                    flag = true;
                }
            }
            if (flag == false) {
                return "error";
            }
            File newExcel = new File(getSavePath() + "\" + uploadFileName);
            if (newExcel.exists()) {
                newExcel.delete();
            }
            try {
                FileUtils.copyFile(upload, newExcel);
            } catch (Exception e) {
                e.printStackTrace();
            }
            // 删除临时文件
            upload.delete();
            return "uploadExcelSuccess";
        }

    }

  • 相关阅读:
    l2tp ubuntu
    my emacs fav config
    2048小游戏源码(vue自定义指令使用)
    Vue 脚手架新建项目
    vue中修改router定义的name值
    只能输入金额格式的input
    前端开发中UI问题处理
    form表单提交Ajax请求后不跳转
    小程序中代替v-html用法
    小程序中分页加载问题
  • 原文地址:https://www.cnblogs.com/Wu-W-Sen/p/4226383.html
Copyright © 2011-2022 走看看