码迷,mamicode.com
首页 > Web开发 > 详细

Bootstrap文件上传组件:bootstrap fileinput

时间:2018-02-03 19:54:16      阅读:1421      评论:0      收藏:0      [点我收藏+]

标签:中文   gif   扩展   one   gre   toggle   must   count   warning   

  

  为了上传预览pdf与图片特用此插件。

 

源码以及API地址:

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

bootstrap-fileinput在线API:http://plugins.krajee.com/file-input

bootstrap-fileinput Demo展示:http://plugins.krajee.com/file-basic-usage-demo

一、效果展示

1、原始的input type=‘file‘,简直不忍直视。

技术分享图片

2、不做任何装饰的bootstrap fileinput:(bootstrap fileinput初级进化

技术分享图片

技术分享图片

3、bootstrap fileinput高级进化:中文化、可拖拽上传、文件扩展名校验(如果不是需要的文件,不让上传)

技术分享图片

 

二、一个bootstrap插件:

<!DOCTYPE html>
<!-- release v4.3.6, copyright 2014 - 2017 Kartik Visweswaran -->
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Krajee JQuery Plugins - &copy; Kartik</title>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="css/default.css">
    <link href="css/fileinput.css" media="all" rel="stylesheet" type="text/css"/>
    <script src="http://cdn.bootcss.com/jquery/1.11.0/jquery.min.js" type="text/javascript"></script>
    <script>window.jQuery || document.write(‘<script src="js/jquery-1.11.0.min.js"><\/script>‘)</script>
    <script src="js/fileinput.js" type="text/javascript"></script>
    <!--简体中文-->
    <script src="js/locales/zh.js" type="text/javascript"></script>
    <!--繁体中文-->
    <script src="js/locales/zh-TW.js" type="text/javascript"></script>
    <script src="http://cdn.bootcss.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <style>
        /***限制图片框的大小**/
        .kv-file-content {
            height: 160px;
            width: 160px !important;
        }

        .kv-preview-data {
            height: 90%;
            width: 90% !important;
        }

    </style>
</head>
<body>
<div class="htmleaf-container">
    <div class="container kv-main">
        <div class="page-header">
            <h2>文件上传</h2>
        </div>
        <form enctype="multipart/form-data">
            <input id="file-0a" class="file" type="file" multiple data-min-file-count="6">
            <br>
            <button type="submit" class="btn btn-primary">Submit</button>
            <button type="reset" class="btn btn-default">Reset</button>
        </form>
        <form enctype="multipart/form-data">
            <hr>
            <div class="form-group">
                <input id="file-0b" class="file" type="file" multiple data-preview-file-type="any" data-upload-url="#">
            </div>
        </form>
    </div>
</div>
</body>
<script>
    //准备附件上传的样式
    $("#file-0a").fileinput({
        language: ‘zh‘,
        showUpload: true, //是否显示上传按钮
        allowedFileExtensions: [‘doc‘, ‘docx‘, ‘pdf‘]
    });
    $("#file-0b").fileinput({
        showPreview: true, //是否显示预览
        uploadUrl: ‘#‘, // you must set a valid URL here else you will get an error
        allowedFileExtensions: [‘jpg‘, ‘png‘, ‘gif‘],
        showUpload: true, //是否显示上传按钮
        overwriteInitial: false,
        maxFileSize: 1000,
        maxFilesNum: 10,
        language: ‘zh‘,
        //allowedFileTypes: [‘image‘, ‘video‘, ‘flash‘],
        slugCallback: function (filename) {
            return filename.replace(‘(‘, ‘_‘).replace(‘]‘, ‘_‘);
        }
    });

    $(".btn-warning").on(‘click‘, function () {
        if ($(‘#file-4‘).attr(‘disabled‘)) {
            $(‘#file-4‘).fileinput(‘enable‘);
        } else {
            $(‘#file-4‘).fileinput(‘disable‘);
        }
    });

    $(document).ready(function () {
        $("#test-upload").fileinput({
            ‘showPreview‘: false,
            ‘allowedFileExtensions‘: [‘jpg‘, ‘png‘, ‘gif‘],
            ‘elErrorContainer‘: ‘#errorBlock‘
        });
    });
</script>
</html>

 

效果:

技术分享图片

 

 

JS解释:

    $("#file-0b").fileinput({
        showPreview: true, //是否显示预览
        uploadUrl: ‘#‘, // you must set a valid URL here else you will get an error
        allowedFileExtensions: [‘jpg‘, ‘png‘, ‘gif‘],
        showUpload: true, //是否显示上传按钮
        overwriteInitial: false,
        maxFileSize: 1000,
        maxFilesNum: 10,
        language: ‘zh‘,
        //allowedFileTypes: [‘image‘, ‘video‘, ‘flash‘],
        slugCallback: function (filename) {
            return filename.replace(‘(‘, ‘_‘).replace(‘]‘, ‘_‘);
        }
    });

 

定义显示哪些按钮。

bootstrap都有一些默认值,参考:fileinput.js

 $.fn.fileinput.defaults = {
        language: ‘en‘,
        showCaption: true,
        showBrowse: true,
        showPreview: true,
        showRemove: true,
        showUpload: true,
        showCancel: true,
        showClose: true,
        showUploadedThumbs: true,
        browseOnZoneClick: false,
        autoReplace: false,
        previewClass: ‘‘,
        captionClass: ‘‘,
        mainClass: ‘file-caption-main‘,
        mainTemplate: null,
        purifyHtml: true,
        fileSizeGetter: null,
        initialCaption: ‘‘,
        initialPreview: [],
        initialPreviewDelimiter: ‘*$$*‘,
        initialPreviewAsData: false,
        initialPreviewFileType: ‘image‘,
        initialPreviewConfig: [],
        initialPreviewThumbTags: [],
        previewThumbTags: {},
        initialPreviewShowDelete: true,
        removeFromPreviewOnError: false,
        deleteUrl: ‘‘,
        deleteExtraData: {},
        overwriteInitial: true,
        layoutTemplates: defaultLayoutTemplates,
        previewTemplates: defaultPreviewTemplates,
        previewZoomSettings: defaultPreviewZoomSettings,
        previewZoomButtonIcons: {
            prev: ‘<i class="glyphicon glyphicon-triangle-left"></i>‘,
            next: ‘<i class="glyphicon glyphicon-triangle-right"></i>‘,
            toggleheader: ‘<i class="glyphicon glyphicon-resize-vertical"></i>‘,
            fullscreen: ‘<i class="glyphicon glyphicon-fullscreen"></i>‘,
            borderless: ‘<i class="glyphicon glyphicon-resize-full"></i>‘,
            close: ‘<i class="glyphicon glyphicon-remove"></i>‘
        },
        previewZoomButtonClasses: {
            prev: ‘btn btn-navigate‘,
            next: ‘btn btn-navigate‘,
            toggleheader: ‘btn btn-default btn-header-toggle‘,
            fullscreen: ‘btn btn-default‘,
            borderless: ‘btn btn-default‘,
            close: ‘btn btn-default‘
        },
        preferIconicPreview: false,
        preferIconicZoomPreview: false,
        allowedPreviewTypes: defaultPreviewTypes,
        allowedPreviewMimeTypes: null,
        allowedFileTypes: null,
        allowedFileExtensions: null,
        defaultPreviewContent: null,
        customLayoutTags: {},
        customPreviewTags: {},
        previewSettings: defaultPreviewSettings,
        fileTypeSettings: defaultFileTypeSettings,
        previewFileIcon: ‘<i class="glyphicon glyphicon-file"></i>‘,
        previewFileIconClass: ‘file-other-icon‘,
        previewFileIconSettings: {},
        previewFileExtSettings: {},
        buttonLabelClass: ‘hidden-xs‘,
        browseIcon: ‘<i class="glyphicon glyphicon-folder-open"></i>&nbsp;‘,
        browseClass: ‘btn btn-primary‘,
        removeIcon: ‘<i class="glyphicon glyphicon-trash"></i>‘,
        removeClass: ‘btn btn-default‘,
        cancelIcon: ‘<i class="glyphicon glyphicon-ban-circle"></i>‘,
        cancelClass: ‘btn btn-default‘,
        uploadIcon: ‘<i class="glyphicon glyphicon-upload"></i>‘,
        uploadClass: ‘btn btn-default‘,
        uploadUrl: null,
        uploadAsync: true,
        uploadExtraData: {},
        zoomModalHeight: 480,
        minImageWidth: null,
        minImageHeight: null,
        maxImageWidth: null,
        maxImageHeight: null,
        resizeImage: false,
        resizePreference: ‘width‘,
        resizeQuality: 0.92,
        resizeDefaultImageType: ‘image/jpeg‘,
        minFileSize: 0,
        maxFileSize: 0,
        maxFilePreviewSize: 25600, // 25 MB
        minFileCount: 0,
        maxFileCount: 0,
        validateInitialCount: false,
        msgValidationErrorClass: ‘text-danger‘,
        msgValidationErrorIcon: ‘<i class="glyphicon glyphicon-exclamation-sign"></i> ‘,
        msgErrorClass: ‘file-error-message‘,
        progressThumbClass: "progress-bar progress-bar-success progress-bar-striped active",
        progressClass: "progress-bar progress-bar-success progress-bar-striped active",
        progressCompleteClass: "progress-bar progress-bar-success",
        progressErrorClass: "progress-bar progress-bar-danger",
        progressUploadThreshold: 99,
        previewFileType: ‘image‘,
        elCaptionContainer: null,
        elCaptionText: null,
        elPreviewContainer: null,
        elPreviewImage: null,
        elPreviewStatus: null,
        elErrorContainer: null,
        errorCloseButton: ‘<span class="close kv-error-close">&times;</span>‘,
        slugCallback: null,
        dropZoneEnabled: true,
        dropZoneTitleClass: ‘file-drop-zone-title‘,
        fileActionSettings: {},
        otherActionButtons: ‘‘,
        textEncoding: ‘UTF-8‘,
        ajaxSettings: {},
        ajaxDeleteSettings: {},
        showAjaxErrorDetails: true
    };

 

 三、后台接收文件:

 

 

 

 

 

参考:https://www.cnblogs.com/landeanfen/p/5007400.html

  http://www.cnblogs.com/wuhuacong/p/4774396.html

  http://blog.csdn.net/u012526194/article/details/69937741

 

Bootstrap文件上传组件:bootstrap fileinput

标签:中文   gif   扩展   one   gre   toggle   must   count   warning   

原文地址:https://www.cnblogs.com/qlqwjy/p/8410413.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!