bootstrap+springmvc 文件下载

SpringMVC下载上传Excel文件 前端框架:Bootstrap,后端框架:SpringMVC、Spring 下载、上传的页面如下: 模版内容如下: 下载、上传的前端代码如下: <div class="modal" id="batchUpdateDigestModal" role="dialog" aria-hidden="true"&gt 阅读详情

1、和文件上传一样需要引入对应的js

2、jsp页面

3、js

/**-模板下载-**/
$('#btn_download').on('click',    function() {
      
        var urlStrl ='downloadFile.do';
        var inputValue1 = 'xxxx'; 
        var form = $('<form></form>');       
        form.attr('style', 'display:none');        
        form.attr('target', '_blank');      //设置_blank后,下载会在新窗口打开,同时保留原来的窗口   
        form.attr('method', 'post');       
        form.attr('action', urlStrl);
        var input = $('<input type="text" name="XXX" id="param1" />'); // 可以使用input来提交数据             
        input.attr('value', inputValue1);  //在input中放入需要传入的数据
        form.append(input);   
        $(document.body).append(form);  
        form.submit();    
        out.clear();
        out = pageContext.pushBody();
        return true;
});

JAVA 后台处理

    @RequestMapping("/downloadFile.do")
    public ModelAndView logDownload(HttpServletRequest request, HttpServletResponse response) throws Exception {
        Map<String, Object> model = new HashMap<String, Object>();
        String remoteFilePath = Tools.getPlatConfig("FTP_FILEPATH");
        String remoteFileName = Tools.getPlatConfig("FTP_FILENAME");
        String localFileName = "F:/ftpfile/"+remoteFileName;
        try {
            FtpOperation ftp = new FtpOperation(Tools.getPlatConfig("FTP_IP"), Short.parseShort(Tools.getPlatConfig("FTP_PORT")), Tools.getPlatConfig("FTP_NAME"), Tools.getPlatConfig("FTP_PASSWORD"));
            boolean downloadFileByName = ftp.downloadFileByName(remoteFilePath, remoteFileName, localFileName);
            if(downloadFileByName){
                //model.put("msg","下载成功");
                model.put("success","true");
                doExport(remoteFileName, localFileName,request,response);
            }else{
                throw new BusinessException("W0000-0027", "下载异常!");
            }
        } catch (Exception e) {
            model.put("msg","出错了");
            model.put("success","false");
            e.printStackTrace();
        }
        return /*new ModelAndView("jsonView", model)*/null;
    }
     /**
        * 导出
        * @param aFileName
        * @param aFilePath
        */
     public void doExport(String aFileName, String aFilePath,HttpServletRequest request,HttpServletResponse response){

           BufferedInputStream bis = null;
           BufferedOutputStream bos = null;
           File file = null;
           System.out.println("aFileName:"+aFileName);
           System.out.println("aFilePath:"+aFilePath);
           file = new File(aFilePath);
           try{
               request.setCharacterEncoding("UTF-8");
               String agent = request.getHeader("User-Agent").toUpperCase();
               if ((agent.indexOf("MSIE") > 0) || ((agent.indexOf("RV") != -1) && (agent.indexOf("FIREFOX") == -1)))
                   aFileName = URLEncoder.encode(aFileName, "UTF-8");
               else {
                   aFileName = new String(aFileName.getBytes("UTF-8"), "ISO8859-1");
               }

               response.setContentType("application/vnd.ms-excel");  
               response.setHeader("Content-disposition", "attachment; filename=" + aFileName);
               response.setHeader("Content-Length", String.valueOf(file.length()));
               bis = new BufferedInputStream(new FileInputStream(file));
               bos = new BufferedOutputStream(response.getOutputStream());
               byte[] buff = new byte[2048];
               int bytesRead;
               while (-1 != (bytesRead = bis.read(buff, 0, buff.length)))
               bos.write(buff, 0, bytesRead);
               System.out.println("success");
               bos.flush();
           }catch (Exception e) {
            // TODO: handle exception
               System.out.println("导出文件失败!");
           } finally {
               try {
                   if (bis != null) {
                     bis.close();
                   }
                   if (bos != null) {
                     bos.close();
                   }
                   file.delete();
                 } catch (Exception e) {
//                   LOGGER.error("导出文件关闭流出错!", e);
                 }
               }
       }

FTP工具类

package com.nmgjc.nlps.common.utils;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

/**
 * 
 * @author mengfanbo
 */

public class FtpOperation {
    protected final static Log ftpOperationLogger = LogFactory.getLog(FtpOperation.class);
    // 用户名
    private String userName = "";
    // 密码
    private String userPwd = "";
    // 地址
    private String ip = "";
    // 端口
    private short port = 21;

    // 上传文件存放的目录
    // private static String UPLOAD_DIR = "print/";

    // OA上传xml文件到MpmsFtp的目录
    // private static String DOWNLOAD_DIR = "test/download";

    // ftp客户端
    private FTPClient ftpClient = new FTPClient();

    /**
     * 构造函数,当目录不存在的时候,创建文件夹
     */
    public FtpOperation(String ip, short port, String username, String passwd) throws IOException {

        this.ip = ip;
        this.port = port;
        this.userName = username;
        this.userPwd = passwd;
        connectToServer();
        // 判断指定路径是否存在,不存在就新建目录
        // checkPathExist("test");
        // checkPathExist(UPLOAD_DIR);
        // checkPathExist(DOWNLOAD_DIR);
        // closeConnect();
    }

    /**
     * 查找指定目录是否存在
     * 
     * @param String
     *            filePath 要查找的目录
     * @return boolean:存在:true,不存在:false
     * @throws IOException
     */
    /*private static boolean checkPathExist(String filePath) throws IOException { boolean existFlag = false; try { if
     * (!ftpClient.changeWorkingDirectory(filePath)) { ftpClient.makeDirectory(filePath); } } catch (Exception e) {
     * e.printStackTrace(); } return existFlag; } */
    /**
     * 连接到ftp服务器
     */
    private void connectToServer() {
        ftpOperationLogger.info("ftpip====" + PubMethod.FommatValue(ip) + "======userName=====" + PubMethod.FommatValue(userName));
        if (!ftpClient.isConnected()) {
            int reply;
            try {
                // ftpClient = new FTPClient();
                ftpClient.connect(ip);
                ftpClient.setControlEncoding("UTF-8");
                ftpClient.setDefaultPort(port);
                ftpClient.login(userName, userPwd);
                reply = ftpClient.getReplyCode();
                ftpClient.enterLocalActiveMode();
                if (!FTPReply.isPositiveCompletion(reply)) {
                    ftpClient.disconnect();
                    ftpOperationLogger.info("FTP server refused connection.");
                }
            } catch (Exception e) {
                ftpOperationLogger.info("登录ftp服务器【" + PubMethod.FommatValue(ip) + "】失败");
                e.printStackTrace();
            }
        }
    }

    /**
     * 关闭连接
     */
    private void closeConnect() {
        try {
            if (ftpClient != null) {
                ftpClient.logout();
                ftpClient.disconnect();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 转码[GBK -> ISO-8859-1] 不同的平台需要不同的转码
     * 
     * @param obj
     * @return
     */
    private static String gbkToIso8859(Object obj) {
        try {
            if (obj == null)
                return "";
            else
                return new String(obj.toString().getBytes("GBK"), "iso-8859-1");
        } catch (Exception e) {
            return "";
        }
    }

    /**
     * 转码[ISO-8859-1 -> GBK] 不同的平台需要不同的转码
     * 
     * @param obj
     * @return
     */
    private static String iso8859ToGbk(Object obj) {
        try {
            if (obj == null)
                return "";
            else
                return new String(obj.toString().getBytes("iso-8859-1"), "GBK");
        } catch (Exception e) {
            return "";
        }
    }

    /**
     * 转码[GBK -> UTF-8] 不同的平台需要不同的转码
     * 
     * @param obj
     * @return
     */
    private static String gbkToUTF(Object obj) {
        try {
            if (obj == null)
                return "";
            else
                return new String(obj.toString().getBytes("GBK"), "UTF-8");
        } catch (Exception e) {
            return "";
        }
    }

    private static String UTFToGBK(Object obj) {
        try {
            if (obj == null)
                return "";
            else
                return new String(obj.toString().getBytes("UTF-8"), "GBK");
        } catch (Exception e) {
            return "";
        }
    }

    /**
     * 设置传输文件的类型[文本文件或者二进制文件]
     * 
     * @param fileType
     *            --BINARY_FILE_TYPE、ASCII_FILE_TYPE
     */
    private void setFileType(int fileType) {
        try {
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 查找指定目录下面指定名称的文件是否存在
     * 
     * @param String
     *            filePath 要查找的目录
     * @param String
     *            fileName 要查找的文件名称
     * @return boolean:存在:true,不存在:false
     * @throws IOException
     */
    private boolean checkFileExist(String filePath, String fileName) throws IOException {
        boolean existFlag = false;
        // 跳转到指定的文件目录
        if (filePath != null && !filePath.equals("")) {
            if (filePath.indexOf("/") != -1) {
                int index = 0;
                while ((index = filePath.indexOf("/")) != -1) {
                    ftpClient.changeWorkingDirectory(filePath.substring(0, index));
                    filePath = filePath.substring(index + 1, filePath.length());
                }
                if (!filePath.equals("")) {
                    ftpClient.changeWorkingDirectory(filePath);
                }
            } else {
                ftpClient.changeWorkingDirectory(filePath);
            }
        }
        String[] fileNames = ftpClient.listNames();
        if (fileNames != null && fileNames.length > 0) {
            for (int i = 0; i < fileNames.length; i++) {
                if (fileNames[i] != null && iso8859ToGbk(fileNames[i]).equals(fileName)) {
                    existFlag = true;
                    break;
                }
            }
        }
        ftpClient.changeToParentDirectory();
        return existFlag;
    }

    /**
     * 从ftp下载指定名称的文件到本地
     * 
     * @param String
     *            remoteFileName --服务器上的文件名(只需要文件名,比如"req_0823.doc")
     * @param String
     *            localFileName--本地文件名(包括完整的物理路径和文件名,比如"F:/ftpfile/req_0823.doc" ,文件名可以自己定,可以不和服务器上的名字一致)
     */
    public boolean downloadFileByName(String remoteFilePath, String remoteFileName, String localFileName) throws IOException {
        boolean returnValue = false;
        // 下载文件
        BufferedOutputStream buffOut = null;
        try {
            // 连接ftp服务器
            connectToServer();
            File localFile = new File(PubMethod.FommatValue(localFileName.substring(0, localFileName.lastIndexOf("/"))));
            if (!localFile.exists()) {
                localFile.mkdirs();
            }
            if (!checkFileExist(remoteFilePath, remoteFileName)) {
                ftpOperationLogger.info("ERR : file  " + remoteFilePath + "/" + remoteFileName + " does not exist, download failed!");
                return false;
            } else {
                // 跳转到指定的文件目录
                if (remoteFilePath != null) {
                    if (remoteFilePath.indexOf("/") != -1) {
                        int index = 0;
                        while ((index = remoteFilePath.indexOf("/")) != -1) {
                            ftpOperationLogger.info("");
                            ftpClient.changeWorkingDirectory(remoteFilePath.substring(0, index));
                            remoteFilePath = remoteFilePath.substring(index + 1, remoteFilePath.length());
                            ftpOperationLogger.info("remoteFilePath====" + remoteFilePath);
                        }
                        if (!remoteFilePath.equals("")) {
                            ftpClient.changeWorkingDirectory(remoteFilePath);
                        }
                    } else {
                        ftpClient.changeWorkingDirectory(remoteFilePath);
                    }
                }
                // 设置传输二进制文件
                setFileType(FTP.ASCII_FILE_TYPE);
                // 获得服务器文件
                buffOut = new BufferedOutputStream(new FileOutputStream(localFileName));
                returnValue = ftpClient.retrieveFile(gbkToUTF(remoteFileName), buffOut);
                // 输出操作结果信息
                if (returnValue) {
                    ftpOperationLogger.info("INFO: download " + remoteFilePath + "/" + remoteFileName + " from ftp : succeed!");
                } else {
                    ftpOperationLogger.info("ERR : download " + remoteFilePath + "/" + remoteFileName + " from ftp : failed!");
                }
            }
            // 关闭连接
            closeConnect();
        } catch (Exception e) {
            e.printStackTrace();
            returnValue = false;
            // 输出操作结果信息
            ftpOperationLogger.info("ERR : download " + remoteFilePath + "/" + remoteFileName + " from ftp : failed!");
        } finally {
            try {
                if (buffOut != null) {
                    buffOut.close();
                }
                if (ftpClient.isConnected()) {
                    closeConnect();
                }
            } catch (Exception e) {
                returnValue = false;
            }
        }
        return returnValue;
    }

    // 上传文件附件到ftp
    /**
     * 
     * @param uploadFile 上传文件本地全路径     E:\金财\work\BTB-NLPS-名单导入模板.xlsx
     * @param filelocalpath 文件名
     * @param uploadpath ftp服务器上传路径
     * @return
     * @throws IOException
     */
    public boolean uploadAnnexToMpmsFtp(File uploadFile, String fileName , String uploadPath) throws IOException {
        boolean returnValue = false;
        // 上传文件
        System.out.println("uploadFile:"+uploadFile);
        System.out.println("filename:"+fileName);
        System.out.println("uploadpath:"+uploadPath);
        BufferedInputStream buffIn = null;
        try {
            connectToServer();
            if (!uploadFile.exists()) {
                ftpOperationLogger.info("ERR : annex named " + PubMethod.FommatValue(fileName) + " not exist, import failed!");
                return false;
            }/*if (!checkFileExist(localpath, filename)) {
                ftpOperationLogger.info("ERR : file  " + localpath + "/" + filename + " does not exist, import failed!");
                return false;
            }*/ else {
                // 跳转到指定的文件目录
                if (uploadPath != null) {
                    if (uploadPath.indexOf("/") != -1) {
                        int index = 0;
                        while ((index = uploadPath.indexOf("/")) != -1) {
                            ftpOperationLogger.info("");
                            ftpClient.changeWorkingDirectory(uploadPath.substring(0, index));
                            uploadPath = uploadPath.substring(index + 1, uploadPath.length());
                            ftpOperationLogger.info("uploadpath====" + uploadPath);
                        }
                        if (!uploadPath.equals("")) {
                            ftpClient.changeWorkingDirectory(uploadPath);
                        }
                    } else {
                        ftpClient.changeWorkingDirectory(uploadPath);
                    }
                }
                // 设置传输二进制文件
                // setFileType(FTP.BINARY_FILE_TYPE);
                ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
                // ftpClient.setFileType(FTP.ASCII_FILE_TYPE);
                // ftpClient.setFileType(FTP.EBCDIC_FILE_TYPE);
                // 设置当前数据连接模式
                // ftpClient.enterLocalActiveMode(); //主动模式
                ftpClient.enterLocalPassiveMode();// 被动模式
                // 获得文件
                buffIn = new BufferedInputStream(new FileInputStream(uploadFile));
                // 上传文件到ftp
                ftpOperationLogger.info("FTP:上传目标路径文件 " + PubMethod.FommatValue(fileName));
                returnValue = ftpClient.storeFile(gbkToIso8859(fileName), buffIn);
                // 输出操作结果信息
                if (returnValue) {
                    ftpOperationLogger.info("INFO: upload file " + PubMethod.FommatValue(uploadFile.getAbsolutePath()) + " to ftp : succeed!");
                } else {
                    ftpOperationLogger.info("ERR : upload file " + PubMethod.FommatValue(uploadFile.getAbsolutePath()) + " to ftp : failed!");
                }
                // 关闭连接
                closeConnect();
            }
        } catch (Exception e) {
            e.printStackTrace();
            returnValue = false;
            ftpOperationLogger.info("ERR : upload file " + PubMethod.FommatValue(uploadFile.getAbsolutePath()) + " to ftp : failed!");
        } finally {
            try {
                if (buffIn != null) {
                    buffIn.close();
                }
                if (ftpClient.isConnected()) {
                    closeConnect();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return returnValue;
    }

    /**
     * 删除服务器上文件
     * 
     * @param fileDir
     *            文件路径
     * @param fileName
     *            文件名称
     * @throws IOException
     */
    private boolean delFile(String fileDir, String fileName) throws IOException {
        boolean returnValue = false;
        try {
            // 连接ftp服务器
            connectToServer();
            // 跳转到指定的文件目录
            if (fileDir != null) {
                if (fileDir.indexOf("/") != -1) {
                    int index = 0;
                    while ((index = fileDir.indexOf("/")) != -1) {
                        ftpClient.changeWorkingDirectory(fileDir.substring(0, index));
                        fileDir = fileDir.substring(index + 1, fileDir.length());
                    }
                    if (!fileDir.equals("")) {
                        ftpClient.changeWorkingDirectory(fileDir);
                    }
                } else {
                    ftpClient.changeWorkingDirectory(fileDir);
                }
            }
            // 设置传输二进制文件
            setFileType(FTP.BINARY_FILE_TYPE);
            // 获得服务器文件
            returnValue = ftpClient.deleteFile(fileName);
            // 关闭连接
            closeConnect();
            // 输出操作结果信息
            if (returnValue) {
                ftpOperationLogger.info("INFO: delete " + fileDir + "/" + fileName + " at ftp:succeed!");
            } else {
                ftpOperationLogger.info("ERR : delete " + fileDir + "/" + fileName + " at ftp:failed!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            returnValue = false;
            // 输出操作结果信息
            ftpOperationLogger.info("ERR : delete " + fileDir + "/" + fileName + " at ftp:failed!");
        } finally {
            try {
                if (ftpClient.isConnected()) {
                    closeConnect();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return returnValue;
    }

    public static void main(String[] args) throws IOException {
        //modify by gjq 20190109 漏洞扫描 Portability Flaw: File Separator (1 Issues)
        //FtpOperation ftp = new FtpOperation("10.1.61.202", (short) 12, "ibpftp", "ibpftp");
        //ftp.uploadAnnexToMpmsFtp(new File("D:\\home\\weblogic\\print\\text.txt"), "print/text1.txt");
    }
}

SSM框架做一个简易的学生选课系统 学生选课系统是基于ssm框架、jsp、bootstrap实现,有基本的增删查改、拦截器、cookie、文件上传下载功能、页面简约。 阅读详情

相关推荐

SSM框架整合实战项目:Spring+SpringMVC+MyBatis+Bootstrap及文件上传下载功能实现

SSM(Spring + SpringMVC + MyBatis)是Java企业级开发的经典组合,通过Spring管理全局Bean、SpringMVC处理HTTP请求、MyBatis操作数据库,实现分层解耦与高效协作。本章将搭建基于Maven的Web项目结构,配置JDK 1.8+、Tomcat 9+及IDEA集成环境,完成pom.xml中核心依赖引入:同时,规范存放Service/Controller代码,resources配置Spring与MyBatis映射文件,注册和。

weixin_42587866的博客 801

bootstrap5 实现文件下载

Bootstrap 5 中的文件下载可以使用 HTML 的 a 标签来实现。你需要指定 a 标签的 href 属性为文件的 URL 地址,并且设置 download 属性来指定文件下载时使用的文件名。 例如,要在 Bootstrap 5 中实现一个文件下载链接,你可以使用以下代码: <ahref="/path/to/file.pdf" download="file.pdf">下载文件&...

weixin_35755434的博客 1323

bootstrap 页面

bootstrap 前端框架 ,深入理解Bootstrap书籍分享,Bootstrap框架主要针对前端,着重于前端样式 Bootstrap是目前全球最流行、最火爆的Web前端开发框架之一。

02-bootstrap-下载与引入

其中 path/to 应该替换成你自己的 Bootstrap 文件路径。一般建议将 CSS 文件放在 标签中,将 JavaScript 文件放在 标签底部,这样可以使得页面加载更快。1、下载:从 Bootstrap 官网下载:直接访问 Bootstrap 的官方网站。下载最新版bootstrap即可。

记录java学习日常~ 4231

Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统

Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统

基于SSM框架的完整项目 Spring+SpringMVC+Mybatis+mysql+bootstrap下载

基于SSM框架的完整项目 Spring+SpringMVC+Mybatis+mysql 前段bootstrap 简单的一个后台管理系统

Bootstrap框架下载与使用

Bootstrap框架下载与使用

s17856147699的博客 2086

避坑指南:Vue2中使用TinyMCE5常见问题解决方案(含PowerPaste插件异常处理)

本文针对Vue2项目中集成TinyMCE 5富文本编辑器时遇到的高频疑难问题,提供了一套深度实战解决方案。内容涵盖环境搭建、资源路径配置、图片与视频上传处理、以及替代PowerPaste插件的自定义粘贴清理方案,旨在帮助开发者有效规避常见陷阱,构建稳定可靠的内容编辑功能。

weixin_29012677的博客 155

(BootStrap笔记)BootStrap下载与引入

Bootstrap下载使用 主要使用dist目录中的资源css ...

张松的博客 9792

蓝桥杯单片机省一经验分享1:基础篇.含详细代码与应试技巧

含详细代码、驱动修改与应试技巧

qq_53529450的博客 1万+

“傻瓜”stata入门——熟悉操作界面

小白开始学习stata和matlab,零基础上手

nnpersistent的博客 4457

bootstrapvue上传文件并存储到服务器指定路径及从服务器某路径下载文件

注:此处打印formData 显示为空,但实际可以传输,可以打印this.file查看。第一次接触上传及下载文件,做个总结。

qinghuanduji的博客 2453

保姆级教程:用NVIDIA Jetson AGX Xavier和GMSL2相机搭建8路车载视觉原型系统

本文提供了一份详细的教程,指导如何使用NVIDIA Jetson AGX Xavier开发板和GMSL2相机搭建8路车载视觉原型系统。内容涵盖硬件选型、系统架构设计、软件环境配置、多路视频采集实现以及性能优化与问题排查,帮助开发者快速掌握GMSL2技术在车载视觉系统中的应用。

weixin_42525005的博客 295

springmvc+bootstrap +java jxl批量导入(excel)数据库-文件上传下载

导入maven依赖 <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.12</version> </dependency> <!– https:/...

图图是只猫 1528

嵌入式C开发必备:用Cursor规则搞定代码风格检查(附Pikachu项目实战)

本文以Pikachu开源项目为例,详细介绍了如何利用Cursor的AI代理规则系统,为嵌入式C开发项目配置一套完整的代码风格检查与规范执行方案。通过实战演示,指导开发者创建项目级规则,实现命名、格式、硬件抽象层及驱动开发的自动化规范,从而提升代码一致性、可维护性和团队协作效率。

weixin_29181861的博客 599

别再手动调参了!用BERTopic分析500篇论文摘要,我总结了这份超全参数调优指南

本文详细介绍了如何通过BERTopic参数调优从500篇论文摘要中挖掘高质量主题。从文档嵌入、降维到聚类,每个环节的关键参数设置都直接影响主题分析效果。文章提供了学术文本特有的调优技巧,包括预处理、主题多样性与专注度的平衡,以及评估指标与迭代优化方法,帮助研究者高效完成NLP主题分析任务。

weixin_31235909的博客 215

Java:SpringMVC文件下载

spingMVC框架的文件下载功能实现

chenyouchang的博客 305

基于YOLOv5的空间目标智能监测系统:航天器与太空碎片识别技术实现

做完这个项目,你会发现自己完整走过了“数据采集→标注→模型训练→功能集成→界面开发”的毕设全流程,这不仅是技术能力的证明,更是对“技术守护宇宙安全”这一理念的实践。答辩时,你可以重点讲这几点:系统解决了航天监测的哪些痛点、YOLOv5在太空目标检测中的性能优势、系统未来能怎么优化(比如对接航天监测网络、实现实时轨道预测)。未来,这个系统还能往“更智能”的方向发展:比如结合轨道计算预测碰撞风险、开发移动端APP让天文爱好者参与太空垃圾上报、在航天任务中实现全自动避障决策……想象空间很大。

m0_64661770的博客 111

springmvc+bootstrap 自动开发模式

结合springmvc bootstrap 的代码快速构建 主要实现思路:服务端通过构建通用的增删改查服务 + 前端的jquery插件实现 配置及开发 所见即所得 功能。 目前版本还不够完善,正在开发中。 线上截图吧  1、支持自动创建bootstrap风格的树,适合在手机上进行操作。 2、支持form datagrid的联合保存、修改等功能 3、支持单表字段的翻译功能    ...

a410498563的博客 206

级联H桥构网型储能SVG系统设计与VSG控制策略研究

随着新能源渗透率不断提高,电力系统惯量和阻尼水平持续下降,传统跟网型控制策略在弱电网条件下的稳定性面临严峻挑战。构网型控制以电压源方式运行,能够为系统提供惯量和频率支撑,成为当前研究热点。本文针对10kV/10Mvar级联H桥构网型储能静止无功发生器(SVG),采用星形连接拓扑结构,设计了基于虚拟同步发电机(VSG)的构网型控制策略。文章从主电路拓扑设计、数学建模、VSG控制策略设计、调制策略、直流电压平衡控制、系统参数设计、仿真建模和硬件实现等八个方面展开系统论述,给出了完整的Simulink仿真模型~~

huanghm88的专栏 349

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

常用网络js链接大全(jQuery、bootstrap、vue、ECharts、easyUI、React、maven、Mybatis、Spring、SpringMVC)

常用网络js链接大全(jQuery、bootstrap、vue、ECharts、easyUI、React、maven、Mybatis、Spring、SpringMVC)

qq_51462308的博客 661

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

一个简单的(注册登录+文件上传下载)的demo(SSM整合)

一个简单的(注册登录+文件上传下载)的demo(SSM整合) 之前写了好多Demo都没有进行整理,等的抽时间会整理一下上传到博客中,再敲一遍也算是加深印象吧。 还有之前上传的SSM实现学生管理系统源码+sql:https://download.csdn.net/download/qq_38663663/10868855。 今天整理的是一个注册登录+文件上传下载的Demo,前端部分就用了大二时...

軒轅劍的博客 1423

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

fileinput 时间_Bootstrap的fileinput插件实现多文件上传的方法

*1.bootstrap-fileinput 插件git下载地址2.解决使用bootstrap-fileinput得到返回值上传图片$("#file-0a").fileinput({uploadUrl : "/upload_img",//上传图片的urlallowedFileExtensions : [ 'jpg', 'png', 'gif' ],overwriteInitial : false,...

weixin_39851048的博客 227

java多附件上传插件下载_Bootstrap的fileinput插件实现多文件上传的方法

*1.bootstrap-fileinput 插件git下载地址https://github.com/kartik-v/bootstrap-fileinput.git2.解决使用bootstrap-fileinput得到返回值上传图片$("#file-0a").fileinput({uploadUrl : "/upload_img",//上传图片的urlallowedFileExtensions ...

weixin_33585889的博客 334

ssm项目实战------------OA管理项目

“我不是代码的生产者,我只是代码的搬运工,搬砖的假码农”.......................坚持,朝着坚定的目标继续前进,成功的道路是孤独的,相信自己,自己为自己加油,自己为自己带盐!!!!我为自己带盐,我是从放弃到开始,从开始到放弃,从放弃再到开始,无限循环,希望意志坚定!加油 本项目技术介绍: spring springmvc mybatis jsp jquery ...

从放弃到开始 5444

ssm mysql多条件查询_SSM框架整合bootstrap实现数据多条件查询

项目描述本项目使用SSM框架+Bootstrap时间插件做的一个多条件查询的小例子查询条件是:1、下拉框加载出来的数据。2、两个时间段进行查询在本项目中可以清晰地看出SSM整合步骤,SpringMVC,Spring,Mabatis详细配置,配置中每一步都有注释上传这个小案例的原因是因为我在做这个按照时间条件查询的时候遇到了一点小问题,值得记录一下,同时也分享给大家,大家遇到这种问题的时候能够应对。...

weixin_42502977的博客 470
上一篇: bootstrap+springMvc 文件上传
下一篇: Linux 命令
Java程序之猿
博客等级 码龄9年 2599粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值