文件上传前端大小格式校验

前台html代码

<!--第一步:enctype="multipart/form-data"-->
<form id="addForm" enctype="multipart/form-data">

    <div>
        <label>缩略图:</label> <input type="file" id="file" name="file"
            onchange="getFilesize(this)" />
    </div>

    <!-- 点击保存按钮提交form -->

    <input type="submit" value="保存" />

</form>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

input 框的id 要定义为file,才能根据id获取的input框的值,判断文件类型

前台js代码

<script>

    $("#addForm").validate({
            //省略验证   
        submitHandler : function(form) {//验证成功,就提交表单

                 /*第2步:用ajaxSubmit方法提交表单*/ 
                $("#addForm").ajaxSubmit({
                    type : 'post',
                    url : "area/add" , //变量
                    error : function() {//请求失败处理函数  
                        alert("失败");
                    },
                    success : function(data) { //请求成功后处理函数。
                        alert("成功");
                    }
                });

        }
    })

    var fileSize = 0; //文件大小默认为0

    function getFilesize(file) { //如果上传文件,会触发

        /*(1)判断文件后缀类型*/
        var strs = new Array(); //定义一数组     
    //  var pic1 = $("#file").val(); //获取input框的值,文件路径
        var pic1 = $(file).val(); //获取input框的值,文件路径
        strs = pic1.split('.'); //分成数组存储
        var suffix = strs[strs.length - 1]; //获取文件后缀

        if (suffix != 'jpg' && suffix != 'gif' && suffix != 'jpeg'&& suffix != 'png')
        {  
           alert("您选择的不是图片,请上传一个图片");//不是图片,做处理
        }  

        /*(2)获取文件大小,以Kb为单位*/
        fileSize = file.files[0].size / 1024;
        if (fileSize > 10000) {
            alert("您选择的图片太大,请选择小于10M的图片");       
        }  

    }

/* 上传附件的时候,判断附件大小 */
function getFileSize(file) {

    var fileSize = file.files[0].size;

    if (fileSize > 104857600) {
        alert("文件大小不能超过100M,请重新选择文件"); // 提示消息
        $(file).val(""); // 清空已选择的文件

    }

}

</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

后台

@RequiresPermissions("device:create")
@RequestMapping(value = "area/add", method = RequestMethod.POST)
public String addDeviceWithFile(@RequestParam(required = false, value = "file") MultipartFile file){
         //传了文件,做什么处理
    }
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Element UI 的 Upload 组件中,你可以通过设置 `before-upload` 方法来限制文件的大小。下面是一个示例代码,演示如何限制文件的最大大小为 5MB: ```vue <template> <div> <el-upload action="/your-upload-url" :on-success="handleUploadSuccess" :before-upload="beforeUpload" :file-list="fileList" > <el-button type="primary">点击上传文件</el-button> </el-upload> </div> </template> <script> export default { data() { return { fileList: [], // 用于存储已上传的文件 }; }, methods: { handleUploadSuccess(response, file) { // 上传成功的回调函数 this.fileList.push(file); // 将上传成功的文件添加到 fileList 中 // 在这里可以进行其他操作,如保存文件信息到数据库等 }, beforeUpload(file) { // 上传之前的钩子函数,可以在这里进行一些文件大小等的校验 const isLt5M = file.size / 1024 / 1024 < 5; // 将文件大小转换为MB,并判断是否小于5MB if (!isLt5M) { this.$message.error('文件大小不能超过5MB'); return false; } return true; }, }, }; </script> ``` 在上面的代码中,我们使用了 Element UI 的 Upload 组件,并配置了相应的属性和方法。其中,`before-upload` 方法用于进行上传之前的校验。我们通过计算文件大小并将其转换为MB的方式来判断文件大小是否符合要求。如果文件大小超过了限制,将会显示错误提示信息,并阻止文件的上传。 你可以根据自己的需求修改文件大小限制值和错误提示信息。请注意,前端的文件大小限制只是一种辅助校验,真正的文件大小限制应该在后端进行。因此,在实际应用中,你还需要在后端对上传的文件进行大小的验证。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值