jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】

要实现“jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】”,我们需要以下几个步骤:

1. 引入必要的文件

为了使用jquery ajaxfileuplod和essyui,我们需要在页面中引入以下文件:

<!-- 引入jQuery库 -->
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<!-- 引入easyui库 -->
<link rel="stylesheet" type="text/css" href="https://cdn.bootcss.com/jquery-easyui/1.8.1/themes/default/easyui.css">
<script type="text/javascript" src="https://cdn.bootcss.com/jquery-easyui/1.8.1/jquery.easyui.min.js"></script>
<!-- 引入ajaxfileupload插件 -->
<script type="text/javascript" src="https://cdn.bootcss.com/jquery-ajaxfileupload/1.0.0/ajaxfileupload.js"></script>

2. 创建上传按钮

在HTML中,我们需要创建一个上传按钮,以便用户点击后选择文件进行上传:

<input type="file" id="fileupload" name="fileupload">

3. 实现上传功能

接下来,我们需要通过jquery ajaxfileuplod插件来实现上传功能。完整代码如下:

$(document).on("change", "#fileupload", function () {
    var fileInput = $(this),
        url = "/upload",  //上传文件的地址
        imgSize = 1 * 1024 * 1024,  //限制文件大小1M
        loading = $.messager.progress({
            title: "上传中,请稍后...",
            msg: ""
        });
    //判断是否已经上传重复文件
    var uploadFlag = false,
        fileName = fileInput.val().split("\\").pop(),
        fileList = $("#fileList").datagrid("getData").rows;
    for (var i = 0; i < fileList.length; i++) {
        if (fileList[i].fileName == fileName) {
            $.messager.alert("警告", "文件已存在,请勿重复上传。");
            uploadFlag = true;
            return false;
        }
    }
    if (!uploadFlag) {
        //验证文件大小
        if ($.trim(fileInput.val()) == "") {
            $.messager.alert("提示", "请选择要上传的文件。");
            return false;
        } else if (fileInput[0].files[0].size > imgSize) {
            $.messager.alert("提示", "上传文件不能大于1M。");
            return false;
        } else {
            $.ajaxFileUpload({
                url: url,
                secureuri: false,
                fileElementId: fileInput.attr("id"),
                dataType: "json",
                async: false,
                success: function (data, status) {
                    //上传成功后的一些操作
                    $.messager.show({
                        title: "提示",
                        msg: "上传成功。"
                    });
                },
                error: function (data, status, e) {
                    //上传失败后的一些操作
                    $.messager.alert("错误", "上传失败,请稍后重试。");
                }
            });
        }
    }
    $.messager.progress("close");
});

上述代码的具体功能和实现方式如下:

  1. 监听文件上传按钮的值改变事件;
  2. 获取文件上传地址、文件大小等信息;
  3. 判断是否已经上传重复文件,在easyui中使用datagrid显示已上传文件列表;
  4. 对上传的文件进行大小限制;
  5. 发送ajax请求,实现文件上传功能;
  6. 在上传成功或失败时,显示相应的提示信息。

4. 防止重复上传文件

为了防止用户重复上传同一个文件,我们可以在easyui的datagrid中显示已经上传的文件列表,并在上传之前检查文件名是否已经存在于列表中。下面是实现方式的示例代码:

$(function () {
    //使用easyui的datagrid显示文件列表:
    $("#fileList").datagrid({
        singleSelect: true,
        columns: [[
            {field: "fileName", width: 200, title: "文件名"},
            {field: "fileSize", width: 100, title: "大小"},
            {field: "uploadTime", width: 150, title: "上传时间"}
        ]],
        fit: true,
        rownumbers: true,
        idField: "id",
        nowrap: false,
        loadMsg: "",
        pagination: false,
        pageSize: 20,
        scrollbarSize: 0,
        striped: true,
        url: "getFilesList",
        onDblClickRow: function (rowIndex, rowData) {
            //双击文件列表,可以下载相应文件的功能
            window.location.href = "download?fullName=" + rowData.fullName;
        }
    });
});

5. 加载效果

为了使用户在等待上传任务完成时不会感到无聊或无助,我们还可以使用easyui的loading效果来提示用户。可以在上传开始时显示loading,在上传结束时关闭loading。示例代码如下:

//在ajax请求开始时,开启loading
$.messager.progress({
    title: "上传中,请稍后...",
    msg: ""
});
//在ajax请求结束时,关闭loading
$.messager.progress("close");

至此,完整的“jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】”攻略已经完成。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】 - Python技术站

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

相关文章

  • js中scrollTop()方法和scroll()方法用法示例

    下面是 JS 中 scrollTop() 方法和 scroll() 方法的用法示例攻略: 1. scrollTop() 方法 1.1 定义和用途 scrollTop() 方法用于获取或设置滚动条在垂直方向上的偏移量。 1.2 语法 // 获取滚动条在垂直方向上的偏移量 $(selector).scrollTop() // 设置滚动条在垂直方向上的偏移量 $(…

    jquery 2023年5月27日
    00
  • 探讨JQUERY JSON的反序列化类 using问题的解决方法

    探讨”JQuery JSON的反序列化类 using问题的解决方法”涉及到前端开发中的一些基础概念以及 Jquery 中的关键字和方法。 一、什么是JSON反序列化? 在前端开发中,我们常常使用JSON来处理数据传输。JSON是JavaScript中的一种数据格式,它非常适合在浏览器和服务器之间传递数据。当我们需要从后端获取JSON数据时,通常会使用jQue…

    jquery 2023年5月28日
    00
  • jquery购物车结算功能实现方法

    下面我将为你详细讲解jquery购物车结算功能实现方法的完整攻略。 1. 确定购物车商品数据结构 在实现购物车结算功能前,需要确定一个合适的购物车数据结构。常见的购物车数据结构有数组和对象两种。在本攻略中,我们使用对象来表示购物车中的商品。 var items = [ { name: ‘商品1’, price: 100, count: 2 }, { name…

    jquery 2023年5月27日
    00
  • JQuery 学习笔记 选择器之六

    我来为大家详细讲解一下“JQuery 学习笔记 选择器之六”的完整攻略。 简介 在 JQuery 的学习中,选择器是一块很重要的基础知识。在之前的选择器系列文章中,我们已经介绍了大部分 JQuery 的选择器的应用。但是在实际的开发中,需要用到更为复杂的选择器,比如筛选和查找元素的组合等。本文将介绍更为高级的 JQuery 选择器知识。 :not() 选择器…

    jquery 2023年5月27日
    00
  • 如何将页脚固定在页面底部(多种方法实现)

    将页脚固定在页面底部是Web前端常见的需求之一。下面,我将详细介绍多种实现方法。 1. 使用CSS定位固定页脚 使用CSS中的position: fixed属性可以将页脚定位在页面底部,即使用户滚动页面,页脚仍然固定在底部。以下是实现此效果的样例代码: <style> footer { position: fixed; left: 0; bott…

    jquery 2023年5月18日
    00
  • jQuery prepend()的例子

    下面是关于”jQuery prepend()的例子”的详细攻略: 什么是jQuery prepend()方法? .prepend()方法可以在指定元素的开始处(比如第一个子元素之前)插入新内容,它会在目标元素的开头插入传入的参数内容。 使用.prepend()方法时,可以传入一个或多个参数,每个参数都可以包含HTML字符串,DOM元素或jQuery对象。这些…

    jquery 2023年5月12日
    00
  • 什么是jQuery中的非侵入式验证

    jQuery中的非侵入式验证(Non-Intrusive Validation)是一种用于验证用户输入的技术,它可以通过JavaScript在页面上实时检测用户输入的有效性,并且在需要的时候提示错误信息。 通过使用非侵入式验证技术,我们可以在不干扰正常用户输入流程的情况下,有效地避免一些常见的输入错误,比如无效的邮件地址、密码过短等等。以下是非侵入式验证的实…

    jquery 2023年5月12日
    00
  • jQuery UI的Draggable revert选项

    以下是关于 jQuery UI 的 Draggable revert 选项的详细攻略: jQuery UI Draggable revert 选项 revert 选项用于指定拖动结束后元素的行为。可以使用该选项指定拖动结束后元素的行为,以实现更复杂的拖动效果。 语法 $(selector).draggable({ revert: revert-value }…

    jquery 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部