下面的代码是上传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";
    }

}

JAVAWeb SSH框架 上传文件,如2007的EXCEL的更多相关文章

  1. ssh centos 上传文件

    ssh centos 上传文件命令(ftp开不起的情报况下): rz -be 下载文件: sz

  2. android 使用AsyncHttpClient框架上传文件以及使用HttpURLConnection下载文件

    AsyncHttpClient开源框架android-async-http还是非常方便的. AsyncHttpClient该类通经常使用在android应用程序中创建异步GET, POST, PUT和 ...

  3. [iOS 多线程 & 网络 - 2.11] - ASI框架上传文件

    A.ASI的上传功能基本使用 1.实现步骤 (1)创建请求 使用ASIFormDataRequest (2)设置上传文件路径 (3)发送请求     2.上传相册相片 UIImagePickerCon ...

  4. Javaweb向服务器上传文件以及从服务器下载文件的方法

    先导入jar包 点击下载 commons-fileupload是Apache开发的一款专门用来处理上传的工具,它的作用就是可以从request对象中解析出,用户发送的请求参数和上传文件的流. comm ...

  5. c# 使用ssh.net 上传文件

    在ssh.net 客户端实例下无法普通用户切换到su root  超级用户,原因是tty 的不支持,具体原因未查, 连接时用超级用户,问题解决 使用ssh.net  能实现远程命令,  使用其中的sf ...

  6. nodejs express 框架 上传文件

    web 项目应用express4.0框架 html 表单post 文件上传失败,后端无法获取提交文件 express不支持文件上传. 方式一 若是图片,可以将图片转码为BASE64上传 前端框架ang ...

  7. 使用shiro安全框架上传文件时用HttpSession获取ServletContext为null问题解决方法。

    <!--在shiroFilter 中加入一下配置--> <init-param> <param-name>targetFilterLifecycle</par ...

  8. .Net core 使用SSH.Net上传到SFTP服务器和和下载文件

    今天换了个服务器,文件上传到sftp服务器上了,那么ftp和sftp服务器有什么区别呢,正常来说sftp会更安全一些. 废话不多说,首先.net core 上传到sftp需要引入一个Nuget包,就是 ...

  9. mvc4 强大的导出和不需要上传文件的批量导入EXCEL--SNF快速开发平台3.1

    数据的导入导出,在很多系统里面都比较常见,这个导入导出的操作,在Winform里面比较容易实现,但在Web上我们应该如何实现呢?本文主要介绍利用MVC4+EasyUI的特点,并结合文件上传控件,实现文 ...

随机推荐

  1. 从springmvc启动日志学习

    javaee标准中,tomcat等web容器启动时走web.xml 先将各种contex-param 放到servletcontxt中变成parameter,然后开始启动容器,容器对外提供了liste ...

  2. 运行“cordova build android” - 无法找到属性android:fontVariationSettings和android:ttcIndex

    :app:processArm64DebugResourcesC:\Users\xfcao\.gradle\caches\transforms-1\files-1.1\xwalk_core_libra ...

  3. memcpy使用

    void memcpy(void dest, const void *src, size_t n); 功能编辑 从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置 ...

  4. linux shell 字符串操作详解(获取长度、查找,替换)

    在做shell批处理程序时候,常常会涉及到字符串相关操作.有许多命令语句,如:awk,sed都能够做字符串各种操作. 事实上shell内置一系列操作符号,能够达到相似效果,大家知道,使用内部操作符会省 ...

  5. platform-tools

    platform-tools包含开发app的平台依赖的开发和调试工具,包括 adb.fastboot等 android sdk里的各目录作用 AVD Manager.exe:虚拟机管理工具,用于建立和 ...

  6. Data Structure Binary Tree: Inorder Tree Traversal without recursion and without stack!

    http://www.geeksforgeeks.org/inorder-tree-traversal-without-recursion-and-without-stack/ #include &l ...

  7. 【leetcode刷提笔记】Permutations

    Given a collection of numbers, return all possible permutations. For example,[1,2,3] have the follow ...

  8. Spark Structured Streaming框架(2)之数据输入源详解

    Spark Structured Streaming目前的2.1.0版本只支持输入源:File.kafka和socket. 1. Socket Socket方式是最简单的数据输入源,如Quick ex ...

  9. Android系统OTA升级包制作【转】

    本文转载自:http://blog.csdn.net/dingfengnupt88/article/details/52882788 Android系统升级分为整包升级和差分包升级,整包升级就是将系统 ...

  10. <再看TCP/IP第一卷>关于网络层及协议细节---IP协议(2)--移动IP及DHCP

    题外话:本来想按照互联网的层级自下向上回顾这些协议的,但是今天实在得破个例,DHCP不得不说! 主机从一个网络迁移到另一个网络,那么IP编址的结构就要发生改变,当今主流有如下几种修改方案: (一)改变 ...