bootstrap fileinput上传文件

参考博客:https://blog.csdn.net/linhaiyun_ytdx/article/details/76215974

      https://www.cnblogs.com/parker-yu/p/7207071.html

最近在最接口对接,需要将文件和一些其他参数发送到其他系统中去,发送文件用到了bootstrap fileinput。

一、首先要下载插件包

  插件下载地址:https://github.com/kartik-v/bootstrap-fileinput/

二、引入js和css文件  

<link rel="stylesheet" href="<%=request.getContextPath()%>/plug-in/bootstrap-fileinput/css/fileinput.min.css">
<script src="<%=request.getContextPath()%>/plug-in/bootstrap-fileinput/js/fileinput.min.js"></script>
<script src="<%=request.getContextPath()%>/plug-in/bootstrap-fileinput/js/locales/zh.js"></script>

三、代码:

  1、页面文件  

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<link rel="stylesheet" href="<%=request.getContextPath()%>/plug-in/bootstrap-fileinput/css/fileinput.min.css">
<script src="<%=request.getContextPath()%>/plug-in/bootstrap-fileinput/js/fileinput.min.js"></script>
<script src="<%=request.getContextPath()%>/plug-in/bootstrap-fileinput/js/locales/zh.js"></script>

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>bootstrap fileinput上传</title>
</head>
<body>
<div align="center">
    <div class="container-fluid" style="width: 90%; margin-top: 2%">
        <form class="form-horizontal" id="form" action="" method="post" enctype="multipart/form-data">
            <div class="form-group">
                <label for="exec_file" class="col-sm-2 control-label">上传文件<font color="red">*</font>:</label>
                <div class="col-sm-10">
                    <input id="input-id" name="file" multiple type="file" data-show-caption="true" data-show-preview="false">
                </div>
            </div>
            <div class="form-group">
                <label for="name" class="col-sm-2 control-label">文件名称<font color="red">*</font>:</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" id="name" placeholder="请输入文件名称">
                </div>
            </div>
            <div class="form-group">
                <label for="description" class="col-sm-2 control-label">描述:</label>
                <div class="col-sm-10">
                    <textarea rows="3" cols="2" class="form-control" id="description" placeholder="请输入描述"></textarea>
                </div>
            </div>
        </form>
    </div>
</div>
<script>
    $(function() {
        initFileInput("input-id");
    })
    function initFileInput(ctrlName) {
        var control = $(‘#‘ + ctrlName);
        control.fileinput({
            language : ‘zh‘, //设置语言
            uploadUrl : "addScriptJson.do", //上传的地址
            allowedFileExtensions : [ ‘jpg‘, ‘gif‘, ‘png‘,  ‘bat‘,  ‘txt‘ ],//接收的文件后缀
            maxFilesNum : 5,//上传最大的文件数量
            //uploadExtraData:{"id": 1, "fileName":‘123.mp3‘},
            uploadAsync : true, //默认异步上传
            showUpload : true, //是否显示上传按钮
            showRemove : true, //显示移除按钮
            showPreview : true, //是否显示预览
            showCaption : false,//是否显示标题
            browseClass : "btn btn-primary", //按钮样式
            //dropZoneEnabled: true,//是否显示拖拽区域
            //minImageWidth: 50, //图片的最小宽度
            //minImageHeight: 50,//图片的最小高度
            //maxImageWidth: 1000,//图片的最大宽度
            //maxImageHeight: 1000,//图片的最大高度
            maxFileSize : 0,//单位为kb,如果为0表示不限制文件大小
            //minFileCount: 0,
            //maxFileCount: 10, //表示允许同时上传的最大文件个数
            enctype : ‘multipart/form-data‘,
            validateInitialCount : true,
            previewFileIcon : "<i class=‘glyphicon glyphicon-king‘></i>",
            msgFilesTooMany : "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
            uploadExtraData:function (previewId, index) {
                //向后台传递的额外参数
                var otherData = getdata();
                return otherData;
            }
        }).on(‘filepreupload‘,function(event, data, previewId, index) { //上传中
            var form = data.form, files = data.files, extra = data.extra, response = data.response, reader = data.reader;
            console.log(‘文件正在上传‘);
        }).on("fileuploaded",function(event, data, previewId, index) { //一个文件上传成功
            console.log(‘文件上传成功!‘ + data.id);
        }).on(‘fileerror‘, function(event, data, msg) { //一个文件上传失败
            console.log(‘文件上传失败!‘ + data.id);
        })
    }
    function getdata(){
        var name = $("#name").val() ;
        var description = $("#description").val() ;
        var scriptJson = {
            "name": name,
            "description": description
        }
        return scriptJson;
    }
</script>
</body>

  2、后台代码

@Description("新增脚本信息")
@RequestMapping(value = "addScriptJson", method = RequestMethod.POST)
@ResponseBody
public String addScriptJson(@RequestParam MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
        String name = request.getParameter("name");
        String description = request.getParameter("description");
        System.out.println(name);
        System.out.println(description);
        String filePath = "";// jar包的路径
        if (!file.isEmpty()) {
            File temp = new File("");
            filePath = temp.getAbsolutePath() + "\\" + file.getOriginalFilename();
            BufferedOutputStream out;
            try {
                out = new BufferedOutputStream(new FileOutputStream(new File(filePath)));
                out.write(file.getBytes());
                out.flush();
                out.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        AjaxJson ajaxJson = new AjaxJson();
        try {
        // 这里处理业务逻辑
        } catch (Exception e) {
            ajaxJson.setSuccess(false);
            ajaxJson.setMsg(e.getMessage());
            e.printStackTrace();
        }
        return ajaxJson.getJsonStr();
    }

原文地址:https://www.cnblogs.com/xiehongwei/p/8718161.html

时间: 2024-10-06 17:50:53

bootstrap fileinput上传文件的相关文章

bootstrap fileinput 上传文件

最近用到文件上传功能, 说实话:以前遇到过一次,COPY了别人的代码 结束! 这次又要用,可是看到别人很酷的文件上传功能,心痒了! 好吧.简单的办法,找控件: bootstrap fileinput 真是好看: bootstrap-fileinput源码:https://github.com/kartik-v/bootstrap-fileinput bootstrap-fileinput在线API:http://plugins.krajee.com/file-input bootstrap-fi

Bootstrap FileInput 上传 中文 API 整理

Bootstrap FileInput 上传  中文 API 整理 上传插件有很多 但是公司用的就是 Bootstrap FileInput 自己就看了看  会用就行 自己都不知道每个值是干嘛用的就问大佬 总结一下 1 一. 引入文件 2 <link href="../css/bootstrap.min.css"rel="stylesheet"> 3 <link href="../css/fileinput.css" media

关于Bootstrap fileinput 上传新文件,移除时触发服务器同步删除的配置

在Bootstrap fileinput中移除预览文件时可以通过配置initialPreviewConfig: [ { url:'deletefile',key:fileid } ] 来同步删除服务器上的文件和记录.但新上传的文件则需要其他方式来同步删除服务器记录. 在配置中遇到的一些问题,记录一下. fileinput在文件上传成功后会触发'fileuploaded'事件,移除图片后会触发'filesuccessremove'事件. 其中在fileuploaded中参数previewId是形如

bootstrap fileinput上传返回400,404,500 等错误替换

$(".uploadfile").on('filebatchuploaderror', function(event, data, msg) { $(".file-error-message").text("请按照正确的进行操作!谢谢!"); }); 根据你的ID替换即可.

基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽)

首先需要导入一些js和css文件 ? 1 2 3 4 5 6 <link href="__PUBLIC__/CSS/bootstrap.css" rel="external nofollow" rel="stylesheet"> <link type="text/css" rel="stylesheet" href="__PUBLIC__/CSS/fileinput.css&qu

bootstrap图片上传控件 fileinput

前端 1.要引用的js <link type="text/css" rel="stylesheet" href="~/HContent/css/fileinput.css" /> //-----------样式 <script src="~/HContent/js/fileinput.js"></script> //基本的js<script src="~/HContent/j

WebUploader 上传插件结合bootstrap的模态框使用时选择上传文件按钮无效问题的解决方法

由于种种原因(工作忙,要锻炼健身,要看书,要学习其他兴趣爱好,谈恋爱等),博客已经好久没有更新,为这个内心一直感觉很愧疚,今天开始决定继续更新博客,每周至少一篇,最多不限篇幅. 今天说一下,下午在工作中遇到的一个问题:公司的后端同事用bootstrap的模态框,结合WebUploadder做后台上传文件的功能的时候,发现上传按钮点击无效.同事过来请求我支援,我研究了下,发现了三种解决方案,下面具体说说是这三种方法是怎么解决的. 我们先来分析一下解决这个问题的思路: 为什么上传控件放到模态框里面就

fileinput上传 全代码包含后台

说明:所提供的代码采用原生servlet+jdbc不用考虑项目兼容性问题(java),考虑到通用性加入了fileinputconfig.properties配置文件,只需要拷贝代码到项目中更改相关配置就可以使用. 1.先来效果图(代码在后面) 初始化 上传前 上传后 2.技术框架:fileinput + servlet+ jdbc 考虑到兼容所有的java框架所以采用了servlet+jdbc作为后台 依赖的js+css <script type="text/javascript"

ajax上传文件 预览

需要用到:ajaxfileupload <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script src="http://libs.baidu.com/jquer