HTML JS 自定义input文件上传 file的提示文字及样式,Html+js+bootstrap+SpringBoot 实现 ajax文件上传和下载

HTML JS 自定义input文件上传 file的提示文字及样式

我这边找了许久,没有发现直接修改 <input type="file">的操作,于是我这边就将 <input type="file"> 进行隐藏,新增一个按钮<button> 用于展示按钮内容和<span>来展示选择的文件,来!上代码

效果如下:

未选择文件

在这里插入图片描述

选择文件后

在这里插入图片描述

HTML 代码

我这边是结合Bootstrap来写的

   <div class="row">
       <div class="col-md-6">
           <div class="col-md-2">
               <label for="cvsFile">*CSV</label>
           </div>
           <div class="col-md-10">
               <!-- 用于展示按钮文案 -->
               <button class="btn btn-info" id="cvsFileBtn">
                   <span class="glyphicon glyphicon-cloud-upload"></span>
                   Choose CSV</button>
               <!-- 用于展示选择的文件名称 -->
               <span id="cvsFileText"></span>
               <!-- 隐藏input file文件选择器 -->
               <input type="file" style="width: 350px" name="cvsFile" id="cvsFile"
                      accept=".csv" hidden/>
           </div>

       </div>
       <div class="col-md-6">
           <a id="downloadTemplateBtn">Download Template</a>
       </div>
   </div>

Js代码


	// 点击按钮触发input file文件选择器 点击事件
    $("#cvsFileBtn").on('click', function () {
        $("#cvsFile").trigger('click');
    });
    
    // 选择文件产生change事件,则span则获取file文件选择器的值
    $("#cvsFile").on('change', function () {
        $("#cvsFileText").html($("#cvsFile").val());
    });

Html+js+bootstrap+SpringBoot 实现 ajax文件上传和下载

html+js+bootstrap 实现 ajax文件上传

效果
在这里插入图片描述

html代码


<!-- 点击上传按钮 用于弹出模态窗 -->
<div class="row">
 <button class="btn btn-info" id="uploadCSVBtn">
                       <span class="glyphicon glyphicon-cloud-upload"></span>
         Upload CSV</button>
                   <span id="cvsFileText"></span>
</div>

<!-- 弹出模态窗 -->
<div class="modal fade" tabindex="-1" role="dialog" id="uploadModal">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title">Upload CSV File</h4>
            </div>
            <div class="modal-body">
                <div class="row">
                    <div class="col-md-6">
                        <div class="col-md-2">
                            <label for="cvsFile">*CSV</label>
                        </div>
                        <div class="col-md-10">
                            <button class="btn btn-info" id="cvsFileBtn">
                                <span class="glyphicon glyphicon-cloud-upload"></span>
                                Choose CSV</button>
                            <span id="cvsFileText"></span>
                            <input type="file" style="width: 350px" name="cvsFile" id="cvsFile"
                                   accept=".csv" hidden/>
                        </div>

                    </div>
                    <div class="col-md-6">
                        <a id="downloadTemplateBtn">Download Template</a>
                    </div>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button type="button" id="uploadFileBtn" class="btn btn-primary">Upload File</button>
            </div>
        </div>
    </div>
</div>

js

// 初始化
$(function () {

	// 点击上传按钮弹出模态窗事件
    $('#uploadCSVBtn').click(function () {
          $("#cvsFile").val('');
          $("#cvsFileText").html('');
          $('#uploadModal').modal('toggle');
    });
    
    $("#uploadFileBtn").on('click', function () {
        uploadCVSFile();
    })

    $("#downloadTemplateBtn").on('click', function () {
        let status = confirm("Download CSV Import Template?");
        if (!status) {
            return false;
        }
        downloadTemplate();
    })

    $("#cvsFileBtn").on('click', function () {
        $("#cvsFile").trigger('click');
    })
    $("#cvsFile").on('change', function () {
        $("#cvsFileText").html($("#cvsFile").val());
    })

});

//上传
function uploadCVSFile(){
    var cvsFile = $("#cvsFile")[0].files[0];
    if (isEmpty(cvsFile)) {
        bootbox.alert("The upload File Must be not empty!");
        return false;
    }
    if (!/.(csv)$/.test($("#cvsFile").val())) {
        bootbox.alert("The upload File Type Must be Csv!");
        return false;
    }
    var formdata = new FormData();
    formdata.append('file', cvsFile);
    $.ajax({
        url: 'url',
        type: 'post',
        data: formdata,
        cache: false,
        processData: false,
        contentType: false,
        async: false,
        success: function (data) {
            bootbox.alert('Upload cvs file success!');
        },
        error: function (data) {
            let msg = 'Upload 系统错误!';
            if (!isEmpty(data.responseText)){
                msg = data.responseText;
            }else if (!isEmpty(data.statusText)){
                msg = data.statusText;
            }
            bootbox.alert('Upload cvs file failure ==> ' + msg);
        }
    });
}


// 下载模板
function downloadTemplate(){

    $.ajax({
        url: '/file/downloadTemplate',
        type: 'get',
        contentType: 'application/json',
        success: function (data) {
            if (data === undefined || data === null) {
                return;
            }
            window.location.href = "/file/download?fileName=" + encodeURI(data);
        },
        error: function (data) {
            let msg = 'Download CSV Template 系统错误!';
            if (!isEmpty(data.responseText)){
                msg = data.responseText;
            }else if (!isEmpty(data.statusText)){
                msg = data.statusText;
            }
            bootbox.alert('Download CSV Template failure ==> ' + msg);
        }
    });
}

java 后端代码我就不写了,有需要评论起来,我后期加上

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
fileinput.js 是一个开源的 JavaScript 库,用于在 web 页面上实现文件上传功能。使用该库可以实现以下功能: 1. 支持多种文件类型,包括图片、视频、音频、文档等; 2. 支持文件拖放上传和浏览器文件选择上传; 3. 支持文件预览功能,可以在上传前预览文件; 4. 支持文件大小限制和文件数量限制; 5. 支持上传进度条显示; 6. 支持自定义上传路径和文件命名规则。 下面是一个简单的示例代码,演示如何使用 fileinput.js 实现文件上传功能: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>单文件上传</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.9/css/fileinput.min.css"> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.9/js/fileinput.min.js"></script> </head> <body> <div class="container"> <h3>单文件上传</h3> <input id="file" type="file" name="file" data-show-preview="true"> </div> <script> $(document).ready(function() { $("#file").fileinput({ uploadUrl: "/upload", allowedFileExtensions: ['jpg', 'png', 'gif'], maxFileSize: 1000, maxFilesNum: 1 }); }); </script> </body> </html> ``` 在上面的代码中,我们引入了 fileinput.js 和 jQuery 库,然后创建了一个文件选择框,并将其初始化为 fileinput 组件。在初始化时,我们指定了上传路径、允许上传的文件类型、文件大小限制和文件数量限制。 开发人员需要根据自己的实际需求进行配置和开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小诺大人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值