***Bootstrap FileInput插件的使用经验汇总

插件下载地址:

https://github.com/kartik-v/bootstrap-fileinput/

官方DEMO查看:

http://plugins.krajee.com/file-basic-usage-demo



JQ上传插件汇总:http://www.jq22.com/jquery-plugins%E4%B8%8A%E4%BC%A0-1-jq

图片预览上传插件bootstrap-fileinput.js

http://www.jq22.com/jquery-info15397

插件描述:bootstrapfileinput预览上传图片并使用FmData上传,上传url根据实际情况填写

引入css

<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-fileinput.css" rel="stylesheet">

引入js


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>

<script src="js/bootstrap-fileinput.js"></script>

<script type="text/javascript">

    $(function() {

        //比较简洁,细节可自行完善        

        $(‘#uploadSubmit‘).click(function() {

            var data = new FormData($(‘#uploadForm‘)[0]);

            $.ajax({

                url: ‘xxx/xxx‘,

                type: ‘POST‘,

                data: data,

                async: false,

                cache: false,

                contentType: false,

                processData: false,

                success: function(data) {

                    console.log(data);

                    if (data.status) {

                        console.log(‘upload success‘);

                    } else {

                        console.log(data.message);

                    }

                },

                error: function(data) {

                    console.log(data.status);

                }

            });

        });

    })

</script>



由于工作需要使用Bootstrap的FileInput插件,在此分享下插件的使用方法

直接上代码

fileinput.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" href="css/bootstrap.min.css" />
        <link rel="stylesheet" href="css/fileinput.css" />
    </head>
    <body>
        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript" src="js/bootstrap.min.js"></script>
        <script type="text/javascript" src="js/fileinput.js" ></script>
        <script type="text/javascript" src="js/fileinput_locale_zh.js" ></script>
        <label class="control-label">Select File</label>

        <input id="input-2" name="input2" type="file" class="file-loading">

        <script type="text/javascript">

        var ctrlName = ‘input-2‘;
        var control = $(‘#‘ + ctrlName); 

        control.fileinput({
            uploadUrl:‘http://localhost:8080/upload.php‘,
            showCaption: false,
            showCancel:false,
            showUploadedThumbs:false,
            showClose:false,
            autoReplace:true,
            maxFileCount:1,
            overwriteInitial:true,
            showUploadedThumbs:false,
            language:‘zh‘,
            initialPreview:"<img src=‘/back_t.jpg‘ class=‘file-preview-image‘ />",
            initialPreviewCount:1,
            initialPreviewShowDelete:false,
            layoutTemplates:{
                 actions: ‘<div class="file-actions">\n‘ +
        ‘    <div class="file-footer-buttons">\n‘ +
        ‘    </div>\n‘ +
        ‘    <div class="file-upload-indicator" tabindex="-1" title="{indicatorTitle}">{indicator}</div>\n‘ +
        ‘    <div class="clearfix"></div>\n‘ +
        ‘</div>‘
            }
        }).on(‘fileuploaded‘, function(event, data, previewId, index){ console.log(data.response.message); });

        </script>
    </body>

</html>

uploadFile.php

<?php

if ($_FILES[‘input2‘]["type"] == "image/png") {
    echo "{\"code\":0, \"message\":\"upload success!\"}";
} else {
    echo "{\"code\":-1, \"error\":\"Invalid file format\"}";
}
?>

使用截图

上传成功


php 应用 bootstrap-fileinput 上传文件 插件 操作的方法

//先加载插件所需要的 js 、css 文件

[html] view plain copy

  1. <link href="css/fileinput.css" rel="stylesheet" type="text/css" />
  2. <script src="js/fileinput.js"type="text/javascript"></script>
  3. <script src="js/fileinput_locale_zh.js" type="text/javascript"></script>

//然后 页面上代码

accept="image/*"  配置这个属性 (当点击选择文件时,自动过滤不是图片类型的文件)    name="image_data[]" 此属性(多图片上传时,可以将文件属性放到一个数组中)如图所示:

注 :多图上传  要将ajax设置成  同步

[html] view plain copy

  1. <input type="file" class="file"id="img_url1" name="image_data[]"accept="image/*" multiple>

[javascript] view plain copy

  1. $("#img_url1").fileinput({
  2. language: ‘zh‘,
  3. uploadUrl: "upload", //上传后台操作的方法
  4. uploadAsync: false, //设置上传同步异步 此为同步
  5. maxFileSize: 200,
  6. allowedFileExtensions: [‘jpg‘] //限制上传文件后缀
  7. });//初始化 后 上传插件的样子


php中方法

[php] view plain copy

  1. public function upload(){
  2. if(IS_AJAX)
  3. {
  4. $images_name = ‘‘;
  5. $img_name = time();
  6. foreach($_FILES[‘image_data‘][‘tmp_name‘] as$k=>$v)
  7. {
  8. move_uploaded_file($v,$img_path.$img_name.$k.‘.jpg‘);
  9. $images_name  .=  $img_name.$k.‘.jpg‘.‘,‘;
  10. }
  11. }
  12. return 1; //这个返回值必须要
  13. }

了解更多 请参考http://plugins.krajee.com/file-input/demo#image-management


bootstrap-fileinput的使用

bootstrap-fileinput是基于bootstrap的上传控件,此控件网上有很多例子。我照着例子做后发现请求无法提交到后台,反复测试后发现,不能禁止预览(showPreview要设置为true),禁止预览后fileuploaded则无法响应(实际情况是showPreview=false时, 即便是uploadAsync=true, 也是filebatchuploadsuccess响应返回结果。如果showPreview=true, uploadAsync=true, 才是fileuploaded响应返回结果)。

注意如果出现$("#xxxx").fileinput({}); 不生效的情况请将fileinput.js中最后几行注释掉:

/* $(document).ready(function () {
        var $input = $(‘input.file[type=file]‘), count = $input.attr(‘type‘) ? $input.length : 0;
        if (count > 0) {
            $input.fileinput();
        }
    }); */

<link rel="stylesheet" href="css/bootstrapCSS/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrapCSS/bootstrap-theme.min.css">
<link rel="stylesheet" href="css/bootstrapCSS/fileinput.css" />

<div>

<input type="file" name="uploadfile" id="uploadfile" multiple class="file-loading" />

</div>

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap/fileinput.js"></script>
<script type="text/javascript" src="js/bootstrap/fileinput_locale_zh.js"></script>
<script type="text/javascript" src="js/bootstrap/bootstrap.min.js"></script>

<script type="text/javascript">

$("#uploadfile").fileinput({
                language: ‘zh‘, //设置语言
                uploadUrl: "http://127.0.0.1/testDemo/fileupload/upload.do", //上传的地址
                allowedFileExtensions: [‘jpg‘, ‘gif‘, ‘png‘],//接收的文件后缀
                //uploadExtraData:{"id": 1, "fileName":‘123.mp3‘},
                uploadAsync: true, //默认异步上传
                showUpload: true, //是否显示上传按钮
                showRemove : true, //显示移除按钮
                showPreview : true, //是否显示预览
                showCaption: false,//是否显示标题
                browseClass: "btn btn-primary", //按钮样式
                dropZoneEnabled: false,//是否显示拖拽区域
                //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}!",
            });
//异步上传返回结果处理

$(‘#uploadfile‘).on(‘fileerror‘, function(event, data, msg) {
            console.log(data.id);
            console.log(data.index);
            console.log(data.file);
            console.log(data.reader);
            console.log(data.files);
            // get message
            alert(msg);

});
//异步上传返回结果处理

$("#uploadfile").on("fileuploaded", function (event, data, previewId, index) {
               console.log(data.id);
               console.log(data.index);
               console.log(data.file);
               console.log(data.reader);
               console.log(data.files);

                var obj = data.response;
                alert(JSON.stringify(data.success));

            });

//同步上传错误处理
       $(‘#uploadfile‘).on(‘filebatchuploaderror‘, function(event, data, msg) {
            console.log(data.id);
            console.log(data.index);
            console.log(data.file);
            console.log(data.reader);
            console.log(data.files);
            // get message
            alert(msg);
         });
   //同步上传返回结果处理
   $("#uploadfile").on("filebatchuploadsuccess", function (event, data, previewId, index) {
           console.log(data.id);
               console.log(data.index);
               console.log(data.file);
               console.log(data.reader);
               console.log(data.files);
                var obj = data.response;
                alert(JSON.stringify(data.success));
      });

//上传前

$(‘#uploadfile‘).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(‘File pre upload triggered‘);
    });

</script>

经查资料得知,异步上传处理错误和返回结果要处理fileerror和fileuploaded方法;同步上传处理错误和返回结果filebatchuploaderror和filebatchuploadsuccess方法

时间: 2024-08-05 23:23:29

***Bootstrap FileInput插件的使用经验汇总的相关文章

结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程

1.bootstrap-fileinpu的简单介绍 在前面的随笔,我介绍了Bootstrap-table表格插件的具体项目应用过程,本篇随笔介绍另外一个Bootstrap FieInput插件的使用,整合两者可以实现我们常规的Web数据导入操作,导入数据操作过程包括有上传文件,预览数据,选择并提交记录等一系列操作. 关于这个插件,我在早期随笔<Bootstrap文件上传插件File Input的使用>也做了一次介绍,这是一个增强的 HTML5 文件输入控件,是一个 Bootstrap 3.x

bootstrap fileinput插件使用感悟

bootstrap fileinput 的填坑感悟 这个插件在demo的网站地址http://plugins.krajee.com/file-preview-icons-demo:不得不承认这个插件很强大,作为一个文件上传插件做到了预览,而且还支持国际化,但是唯一的缺点就是api烂的到极点(应该说没有API). 即使没有API,也不能阻挡我使用的热情,即时前方再多的坑也被我一一填满.希望我这篇文章对于初学者有点帮助.废话不多说,开始填坑之旅. 第一步开始知道需要应用的文件: css:<link

JS文件上传神器bootstrap fileinput详解

Bootstrap FileInput插件功能如此强大,完全没有理由不去使用,但是国内很少能找到本插件完整的使用方法,于是本人去其官网翻译了一下英文说明文档放在这里供英文不好的同学勉强查阅.另外附上一段调用方发和servlet端的接收代码,未完待续. 引言: 一个强化的HTML5 文件输入插件,适用于Bootstrap 3.x.本插件对多种类型的文件提供文件预览,并且提供了多选等功能.本插件还提供给你一个简单的方式去安装一个先进的文件选择/上传控制版本去配合Bootstrap CSS3样式.通过

基于bootstrap的fileinput插件实现上传

用户头像上传的Demo 1.引入文件css文件 <link rel="stylesheet" href="../../libs/bootstrap-3.3.7/css/bootstrap.min.css"><!--引入bootstrap的css文件--> <link rel="stylesheet" href="../../libs/bootstrap-fileinput-master/css/filein

Bootstrap FileInput 多图上传插件 文档属性说明

Bootstrap FileInput 多图上传插件   原文链接:http://blog.csdn.net/misterwho/article/details/72886248?utm_source=itdadao&utm_medium=referral这货融合bootstrap框架,界面相当不错,api非常丰富,可定制内容能满足绝大数的场景. 最近在撸一个项目,用到它,花时间收集了一些文档,整理并翻译了部份内容.备用. github 地址 https://github.com/kartik-

Bootstrap fileinput v1.0(ssm版)

前言bootstrap fileinput是一个很好的文件上传插件.但是官方不出api,这就尴尬了.百度一下,每个人写法都不相同,好多代码本身都是错的.我修改后才能跑起来.综上所述:所以今天我摸索了一天,把今天能够跑的起来的程序核心代码贴上.完整demo在文章末尾github地址上基于本人习惯:所用前端控件均为2017年最新的.最后再唠叨一句:bootstrap不支持IE8极其以下的.没必要与IE较真,毕竟微软人家自己的win10都抛弃ie了.我们又何苦抓着不放呢 功能说明这个版本的功能比较单一

Bootstrap fileinput v3.0(ssm版)

说明在上一个版本即Bootstrap fileinput v2.0(ssm版)的基础上,增加了多处都需要上传的需求 核心代码ArticleController.java package com.isd.controller; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java

JS组件系列——Bootstrap文件上传组件:bootstrap fileinput

原文:JS组件系列--Bootstrap文件上传组件:bootstrap fileinput 前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了.前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签,效果不忍直视,于是博主下定决心要找一个好看的上传组件换掉它.既然bootstrap开源,那么社区肯定有很多关于它的组件,肯定也有这种常见的上传组件吧.经过一番查找,功夫不负有心人,还是被博主找到了这个组件:

Bootstrap fileinput.js,最好用的文件上传组件

本篇介绍如何使用bootstrap fileinput.js(最好用的文件上传组件)来进行图片的展示,上传,包括springMVC后端文件保存. 一.demo   二.插件引入 <link type="text/css" rel="stylesheet" href="${ctx}/components/fileinput/css/fileinput.css" /> <script type="text/javascri