基于WebUploader的文件上传js插件

这里是关于基于WebUploader的文件上传js插件的完整攻略,包括安装、配置和示例的详细讲解。

安装

WebUploader是一个基于HTML5的文件上传插件,支持分片上传、大文件上传等功能。在使用WebUploader之前,我们需要引入jQuery库并下载WebUploader插件。

在HTML文件中引入jQuery及WebUploader插件。示例代码如下:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>WebUploader示例</title>
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/webuploader/0.1.5/webuploader.css">
</head>
<body>
    <div id="uploader-demo">
        <div id="filePicker">选择文件</div>
        <div id="fileList"></div>
    </div>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/webuploader/0.1.5/webuploader.min.js"></script>
</body>
</html>

配置

在引入WebUploader插件后,我们需要对WebUploader进行一些简单的配置。

创建WebUploader对象,示例代码如下:

var uploader = WebUploader.create({
    // swf文件路径
    swf: '/path/to/Uploader.swf',

    // 文件接收服务端。
    server: 'http://yourdomain.com/upload.php',

    // 上传文件大小限制,单位:B,默认5GB
    fileSingleSizeLimit: 5 * 1024 * 1024 * 1024,

    // 上传文件个数限制,默认无限制
    fileNumLimit: 10,

    /* 上传并发数限制,默认3 */
    threads: 3,

    /* 是否分片上传,默认true */
    chunked: true,

    /* 分片大小,默认5M */
    chunkSize: 5 * 1024 * 1024,

    // 自动上传。
    auto: true,

    // LIST容器
    container: '#uploader-demo',

    // 允许重复上传相同文件
    duplicate: true,

    // 指定接受类型,例如:image/*,application/pdf
    accept: null,

    // 是否禁用。
    disableGlobalDnd: false,

    // 文件列表容器。
    fileNumLimit: 10,

    // 名称,可以用作类名前缀。
    baseClass: 'webuploader',

    // 上传组件ID,默认为uploader。
    id: 'uploader',

    // 可以用来服务器上传其他参数
    formData: {},

    // 是否禁用multipart/form-data上传。
    disableMultipart: false,

    // 内部使用的名称,用于创建Input元素。
    name: 'file',

    // 是否禁用选择文件。
    pick: {
        id: '#filePicker',
        multiple: true,
        label: '点击选择文件'
    },

    // 设置上传文件的头信息,默认为空。
    headers: {},

    // 当文件上传出错时触发。
    onError: function (file, code) {}
});

示例

下面展示两个基于WebUploader的文件上传示例:

上传单个文件

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>WebUploader示例</title>
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/webuploader/0.1.5/webuploader.css">
</head>
<body>
    <div id="uploader-demo">
        <div id="filePicker">选择文件</div>
        <div id="fileList"></div>
    </div>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/webuploader/0.1.5/webuploader.min.js"></script>
    <script>
        var uploader = WebUploader.create({
            swf: '/path/to/Uploader.swf',
            server: 'http://yourdomain.com/upload.php',
            fileSingleSizeLimit: 5 * 1024 * 1024 * 1024,
            threads: 3,
            auto: true,
            container: '#uploader-demo',
            accept: null,
            pick: {
                id: '#filePicker',
                multiple: false,
                label: '点击选择文件'
            },
            onError: function (file, code) {console.log(code);}
        });

        uploader.on('fileQueued', function(file) {
            console.log(file);
            $('#fileList').append('<div id="' + file.id + '">' +
                                '<h4 class="info">' + file.name + '</h4>' +
                                '<p class="state">等待上传...</p>' +
                            '</div>');
        });

        uploader.on('uploadProgress', function(file, percentage) {
            var $li = $('#' + file.id),
                $percent = $li.find('.progress .progress-bar');

            // 避免重复创建
            if (!$percent.length) {
                $percent = $('<div class="progress progress-striped active">' +
                    '<div class="progress-bar" role="progressbar" style="width: 0%">' +
                    '</div>' +
                '</div>').appendTo($li).find('.progress-bar');
            }

            $li.find('p.state').text('上传中');

            $percent.css('width', percentage * 100 + '%');
        });

        uploader.on('uploadSuccess', function(file) {
            $('#' + file.id).find('.state').text('已上传');
        });

        uploader.on('uploadError', function(file) {
            $('#' + file.id).find('.state').text('上传出错');
        });

        uploader.on('uploadComplete', function(file) {
            $('#' + file.id).find('.progress').fadeOut();
        });
    </script>
</body>
</html>

上传多个文件

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>WebUploader示例</title>
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/webuploader/0.1.5/webuploader.css">
</head>
<body>
    <div id="uploader-demo">
        <div id="filePicker">选择文件</div>
        <div id="fileList"></div>
    </div>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/webuploader/0.1.5/webuploader.min.js"></script>
    <script>
        var uploader = WebUploader.create({
            swf: '/path/to/Uploader.swf',
            server: 'http://yourdomain.com/upload.php',
            fileSingleSizeLimit: 5 * 1024 * 1024 * 1024,
            threads: 3,
            auto: true,
            container: '#uploader-demo',
            accept: null,
            pick: {
                id: '#filePicker',
                multiple: true,
                label: '点击选择文件'
            },
            onError: function (file, code) {console.log(code);}
        });

        uploader.on('fileQueued', function(file) {
            console.log(file);
            $('#fileList').append('<div id="' + file.id + '">' +
                                '<h4 class="info">' + file.name + '</h4>' +
                                '<p class="state">等待上传...</p>' +
                            '</div>');
        });

        uploader.on('uploadProgress', function(file, percentage) {
            var $li = $('#' + file.id),
                $percent = $li.find('.progress .progress-bar');

            // 避免重复创建
            if (!$percent.length) {
                $percent = $('<div class="progress progress-striped active">' +
                    '<div class="progress-bar" role="progressbar" style="width: 0%">' +
                    '</div>' +
                '</div>').appendTo($li).find('.progress-bar');
            }

            $li.find('p.state').text('上传中');

            $percent.css('width', percentage * 100 + '%');
        });

        uploader.on('uploadSuccess', function(file) {
            $('#' + file.id).find('.state').text('已上传');
        });

        uploader.on('uploadError', function(file) {
            $('#' + file.id).find('.state').text('上传出错');
        });

        uploader.on('uploadComplete', function(file) {
            $('#' + file.id).find('.progress').fadeOut();
        });
    </script>
</body>
</html>

这两个示例展示了如何使用WebUploader实现单个文件和多个文件上传功能。需要注意的是,示例中的server和swf参数需要根据实际情况修改,具体路径需要自己配置。

希望这篇攻略能够对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于WebUploader的文件上传js插件 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Jersey框架的统一异常处理机制分析

    Jersey框架是JavaEE官方提供的RESTful web服务框架,它提供了丰富的功能和易用的API,帮助开发人员快速构建RESTful web服务。在实际应用中,由于外部请求的多变性,我们难以避免出现各种异常情况。为了提高应用程序的健壮性和可维护性,Jersey框架提供了完善的异常处理机制。下面将结合具体案例,给大家详细讲解Jersey框架的统一异常处…

    Java 2023年5月19日
    00
  • iis、apache、nginx使用X-Frame-Options防止网页被Frame的解决方法

    在Web开发中,防止网页被Frame劫持成为了必须的安全措施之一,其中一个重要的方式是使用HTTP响应头中的“X-Frame-Options”来限制哪些网站可以使用Frame加载该网页。 不同的Web服务器软件可能实现方式略有不同,以下分别介绍如何在IIS、Apache以及Nginx中使用X-Frame-Options来防止网页被Frame。 IIS中使用X…

    Java 2023年6月15日
    00
  • Java日常练习题,每天进步一点点(54)

    针对这篇文章,我将会给出一份完整攻略。 首先,这篇文章是一篇关于Java练习题的题解,主要讲解了两个类型的练习题:数组的相关练习和字符串的相关练习。我们将针对这两个部分进行讲解。 数组部分题目讲解 在这篇文章中,给出了5道数组相关的练习题。其中,第一题要求计算一个数组的平均值,第二题要求找到一个数组中的最大值和最小值,第三题要求找到一个数组中的第二大值和第二…

    Java 2023年5月23日
    00
  • springboot+maven快速构建项目的示例代码

    Spring Boot + Maven 快速构建项目的完整攻略 Spring Boot是一个非常流行的Java Web框架,它提供了许多方便的功能,如自配置、快速开发和易于部署。在本文中,我们将介绍如何使用Maven和Spring Boot快速构建项目,并提供两个示例。 步骤一:创建Maven项目 首先,我们需要创建一个Maven项目。可以使用Maven命令…

    Java 2023年5月15日
    00
  • Java Apache Commons报错“StringIndexOutOfBoundsException”的原因与解决方法

    “StringIndexOutOfBoundsException”是Java中的一个异常,通常由以下原因之一引起: 字符串索引错误:如果字符串索引超出范围,则可能会出现此异常。例如,可能会使用错误的索引值或字符串长度。 字符串为空:如果字符串为空,则可能会出现此异常。例如,可能会尝试在空字符串上执行操作。 以下是两个实例: 例1 如果字符串索引超出范围,则可…

    Java 2023年5月5日
    00
  • Flash 实用代码总汇第1/2页

    我们来详细讲解一下“Flash 实用代码总汇第1/2页”的完整攻略。 1. 概述 本篇攻略主要介绍了 Flash 实用代码总汇第1/2页 的使用方法,其中包含了有关 Flash 常用代码的分类、查找和使用等方面的内容。该代码总汇包含了许多 Flash 动画制作过程中可能用到的代码,对于 Flash 初学者或是想要提高 Flash 制作技能的人来说都是非常有用…

    Java 2023年6月15日
    00
  • SSH框架网上商城项目第9战之添加和更新商品类别功能实现

    SSH框架网上商城项目第9战之添加和更新商品类别功能实现 本文介绍了如何实现网上商城项目中添加和更新商品类别的功能。我们使用SSH框架来开发此项目。在本文中,您将学习如何创建商品类别的实体类、DAO层、Service层和Action层,以及如何在网页中使用JavaScript和JQuery实现实时验证和提交表单。 创建商品类别的实体类 为了在数据库中存储商品…

    Java 2023年6月15日
    00
  • SpringMVC form标签引入及使用方法

    下面是关于“SpringMVC form标签引入及使用方法”的完整攻略。 引入form标签库 首先,需要在JSP页面中引入 SpringMVC 的 form 标签库,代码如下: <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form&qu…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部