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日

相关文章

  • 如何在DatePicker中设置年份

    DatePicker是一种常用的日期选择器,可以使用它来选择日期。以下是如何在DatePicker中设置年份的完整攻略: 步骤一:初始化DatePicker 首先,需要初始化DatePicker。以下是示例: // Initialize the DatePicker $( "#datepicker" ).datepicker(); 在上述…

    jquery 2023年5月9日
    00
  • js获取通过ajax返回的map型的JSONArray的方法

    要获取通过ajax返回的map型的JSONArray,我们需要做以下几个步骤: 通过ajax发送请求到后台获取数据,可以使用XMLHttpRequest对象或者jQuery的$.ajax方法。 在ajax的success回调函数中进行操作,根据后台返回的数据类型,使用不同的方法进行解析。 通过遍历map去获取map中的数据。 下面我将详细讲解几个常用的方法:…

    jquery 2023年5月28日
    00
  • 如何使用jQuery加载更多的功能

    使用jQuery可以轻松地为网站添加更多的功能。以下是详细的攻略,演示如何使用jQuery加载更多的功能: 步骤1:引入jQuery库 在使用jQuery之前,需要先在HTML文档中引入jQuery库。可以通过以下方式引入: <script src="https://code.jquery.com/jquery-3.6.0.min.js&qu…

    jquery 2023年5月9日
    00
  • jQuery中的事件详解

    jQuery中的事件详解 jQuery是一种常量使用的JavaScript库,主要用于HTML DOM的操作、事件处理、动画效果的展示等。在jQuery中,事件处理是JS编程中的一个重要部分。本文将为大家详细讲解jQuery中的事件处理。 事件绑定 在jQuery中,通过on()方法可以绑定事件,其语法如下: $(selector).on(event,chi…

    jquery 2023年5月27日
    00
  • 如何在jQuery中使用.on和.hover

    当我们在使用jQuery进行DOM操作时,常常需要对元素进行事件绑定,这时候就需要使用到on()函数或者hover()函数。以下是详细的攻略: 使用.on()函数 .on()函数提供了一种绑定事件的通用方法,可以绑定多个事件。具体用法如下: $(selector).on(event, childSelector, data, function) 参数说明:-…

    jquery 2023年5月12日
    00
  • jQWidgets jqxExpander toggleMode属性

    jQWidgets jqxExpander toggleMode属性 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件和工具包表格等。jqExp是jQ的一个组件,创建可折叠面板。jqxExpander提供了多个属性其中括toggleMode属性本文将详细介绍toggleMode属性,并提供两个示例。 toggleMode属性的基本语法…

    jquery 2023年5月9日
    00
  • 如何使用jQuery来设置和取消cookie

    设置和取消cookie是很常见的网页开发需求,jQuery提供了方便的方法来实现这些功能。下面是如何使用jQuery来设置和取消cookie的完整攻略: 1. 设置cookie 要设置cookie,可以使用jQuery.cookie插件提供的$.cookie()方法。该方法有三个参数:cookie名、cookie值和可选的一些cookie设置。 示例 1:设…

    jquery 2023年5月12日
    00
  • 如何使用jQuery Mobile BootstrapTheme插件为手机设计表单控件

    下面是关于如何使用jQuery Mobile BootstrapTheme插件为手机设计表单控件的完整攻略: 步骤一:下载并引入jQuery Mobile和Bootstrap 首先需要下载jQuery Mobile和Bootstrap,并将其引入到你的HTML文档中(可以通过CDN直接引入),示例代码如下: <!DOCTYPE html> &lt…

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