HTML5文件上传组件美化jQuery插件

简要教程

jQuery.filer是一款简单的HTML5文件上传组件美化jQuery插件。它能够完成单文件和多文件的上传,支持文件的拖拽,支持不同的文件格式校验,支持缩略图和图标等,是一款非常实用的文件上传插件。它的特点还有:

  • 对文件上传File Input组件进行美化
  • 支持多文件上传
  • 支持校验文件:大小,扩展名等
  • 支持创建文件的缩略图
  • 每种类型的文件可以自定义图标
  • 可以为缩略图,图标和input自定义模板和主题
  • 可以移出已选择的文件
  • 可以从剪切板粘贴图片
  • 所有的图标在一个字体文件中
  • 支持文件拖拽

安装

可以通过bower来安装该文件上传插件。

$ bower install jquery.filer               

使用方法

使用该文件上传插件需要在页面头部引入jQuery.filer的样式文件。

<link href="./css/jquery.filer.css" type="text/css" rel="stylesheet" />

<link href="./css/themes/jquery.filer-dragdropbox-theme.css" type="text/css" rel="stylesheet" />               

引入jQuery和jquery.filer.min.js文件。

<script src="http://code.jquery.com/jquery-latest.min.js"></script>

<script src="./js/jquery.filer.min.js"></script>               

HTML结构

最简单的文件上传HTML结构如下:

<form action="./php/upload.php" method="post" enctype="multipart/form-data">

      <input type="file" name="files[]" id="filer_input" multiple="multiple">

      <input type="submit" value="Submit">

</form>               

初始化插件

在页面DOM元素加载完毕之后,可以通过下面的方法来初始化该文件上传插件。

$(document).ready(function() {

     $(‘#filer_input‘).filer();      

});               

配置参数

  • limit:最大上传文件的数量,类型:Number,默认值为:null。
  • maxSize:上传文件的最大尺寸,单位MB。类型:Number,默认值为:null。
  • extensions:可上传的文件的文件扩展名。类型:Array,默认值为:null。
  • changeInput:创建一个新的文件上传input元素。你可以使用默认的模板或自己编写自己的模板。类型:Boolean, String, Function, Object,默认值为:true。
  • showThumbs:显示文件预览。类型:Boolean,默认值为: false。
  • appendTo:目标缩略图的目标元素选择器。当需要在指定的元素上添加文件预览时使用该选项。类型:String,默认值为:null。
  • theme:指定jQuery.filer的主题。类型:String,默认值为:null。
  • templates:指定文件预览的模板,选择器和一些参数。

    {

        box: null, //Thumbnail‘s box element {null, String}

        item: null, //File item element {String(use Filer Variables), Function}

        itemAppend: null, //File item element for edit mode {String(use Filer Variables), Function}

        progressBar: null, //File upload progress bar element {String}

        itemAppendToEnd: false, //Append the new file item to the end of the list {Boolean}

        removeConfirmation: true, //Remove file confirmation {Boolean}

        _selectors: {

            list: null, //List selector {String}

            item: null, //Item selector {String}

            progressBar: null, //Progress bar selector {String}

            remove: null //Remove button selector {String}

        }

    }

  • uploadFile:启用即时文件上传功能。在这个对象中,你可以指定普通jQuery的$.ajax参数或回调函数。

    {

        url: null, //URL to which the request is sent {String}

        data: null, //Data to be sent to the server {Object}

        type: ‘POST‘, //The type of request {String}

        enctype: ‘multipart/form-data‘, //Request enctype {String}

        beforeSend: null, //A pre-request callback function {Function}

        success: null, //A function to be called if the request succeeds {Function}

        error: null, //A function to be called if the request fails {Function}

        statusCode: null, //An object of numeric HTTP codes {Object}

        onProgress: null, //A function called while uploading file with progress percentage {Function}

        onComplete: null //A function called when all files were uploaded {Function}

    }

  • dragDrop:允许文件拖拽功能。在该对象中可以指定回调函数。

    {

        dragEnter: null, //A function that is fired when a dragged element enters the input. {Function}

        dragLeave: null, //A function that is fired when a dragged element leaves the input. {Function}

        drop: null, //A function that is fired when a dragged element is dropped on a valid drop target. {Function}

    }

  • addMore:允许选择多个文件。类型:Boolean,默认值为: false。
  • clipBoardPaste:允许粘贴拷贝图片。类型:Boolean,默认值为: false。
  • excludeName:在移除文件的时候,插件会创建一个隐藏域,name属性将使用该参数。默认值为: jfiler-items-exclude-(input file name)-(input index)。
  • files:已经上传的文件。

    [

        {

            name: "appended_file.jpg",

            size: 5453,

            type: "image/jpg",

            file: "/path/to/file.jpg"

        },

        {

            name: "appended_file_2.jpg",

            size: 9453,

            type: "image/jpg",

            file: "path/to/file2.jpg"

        }

  • beforeRender:在渲染jQuery.filer input之前触发。
  • afterRender:在渲染jQuery.filer input之后触发。
  • beforeShow:在显示缩略图之前触发。
  • afterShow:在显示缩略图之后触发。
  • beforeSelect:在选择一个文件之后,并在将该文件添加到input之前触发。该函数返回一个布尔值。
  • onSelect:在选择一个文件之后触发。
  • onRemove:在移除一个文件之后触发。
  • onEmpty:在没有文件被选择的时候触发。
  • options:在对象中定义自己的参数,定义之后可以在任何地方使用。
  • captions:指定自己的标题。

    {

        button: "Choose Files",

        feedback: "Choose files To Upload",

        feedback2: "files were chosen",

        drop: "Drop file here to Upload",

        removeConfirmation: "Are you sure you want to remove this file?",

        errors: {

            filesLimit: "Only {{fi-limit}} files are allowed to be uploaded.",

            filesType: "Only Images are allowed to be uploaded.",

            filesSize: "{{fi-name}} is too large! Please upload file up to {{fi-maxSize}} MB.",

            filesSizeAll: "Files you‘ve choosed are too large! Please upload files up to {{fi-maxSize}} MB."

        }

    }

    全能程序员交流QQ群290551701,聚集很多互联网精英,技术总监,架构师,项目经理!开源技术研究,欢迎业内人士,大牛及新手有志于从事IT行业人员进入!

时间: 11-12

HTML5文件上传组件美化jQuery插件的相关文章

AjaxFileUpload文件上传组件(php+jQuery+ajax)

jQuery插件AjaxFileUpload可以实现ajax文件上传,下载地址:http://www.phpletter.com/contents/ajaxfileupload/ajaxfileupload.js 主要参数说明:1,url表示处理文件上传操作的文件路径,可以测试URL是否能在浏览器中直接访问,如上:upload.php2,fileElementId表示文件域ID,如上:fileToUpload3,secureuri是否启用安全提交,默认为false4,dataType数据数据,一

Html5添加文件上传组件美化插件教程

一.安装 $ bower install jquery.filer 二.使用方法 <link href="./css/jquery.filer.css" type="text/css" rel="stylesheet" /> <link href="./css/themes/jquery.filer-dragdropbox-theme.css" type="text/css" rel=&q

jQuery.uploadify文件上传组件实例讲解

1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好,无刷新,带上传进度等等.在最近的短信平台开发中,使用Uploadify进行文件上传. Uploadify官网地址是:http://www.uploadify.com/ 可满足项目开发需求. 下载地址:http://www.uploadify.com/wp-content/uploads/files/

Atitit..文件上传组件选型and最佳实践总结(2)----断点续传

Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 如何判断一个插件/控件是否支持断点续传?? 1 3. 常用的组件选型结果::马 1 4. 自定义断点续传控件要实现的指标 2 5. 断点续传实现协议ftp/http/ rmi 等选型.. 2 6. 断点续传实现方式activex,plugin,,applet,  Flash ,能不能实现断点续传?? 3 7. Missing required permissions manifest att

JavaScript File API应用——如何设计和实现文件上传组件

(1)精简"带进度条文件上传组件"的设计与实现 XMLHttpRequest第二版为我们提供了便利的progress事件,通过为xhr.upload.onprogress指定处理函数,可以快速制作进度条,JQuery插件参考代码如下: (function($) { $.fn.uploader = function(userOptions) { var options = { id : "uploader", url : "uploadAction.acti

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

基于HT for Web矢量实现HTML5文件上传进度条

在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件上传进度条,矢量在<矢量Chart图表嵌入HTML5网络拓扑图的应用>一文中已经讲述了关于setCompType()方法的应用,今天我们用setImage()方法充分利用系统中定义好的矢量资源来实现文件上传进度条,我们先来看下效果图: 从效果图可以看到,向服务器上传了一个mp4文件,并在最下方显示

异步文件上传组件 Uploader

Uploader是非常强大的异步文件上传组件,支持ajax.iframe.flash三套方案,实现浏览器的全兼容,调用非常简单,内置多套主题支持 和常用插件,比如验证.图片预览.进度条等,广泛应用于淘宝网,比如退款系统.爱逛街.二手.拍卖.我的淘宝.卖家中心.导购中心等. Uploader的特性 支持ajax.flash.iframe三种方案,兼容所有浏览器.(iframe不推荐使用) 多主题支持,可以自己定制主题 丰富的插件支持 支持多选批量上传 支持上传进度显示 支持取消上传 支持图片预览(

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

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