根据上传图片将图片转换成base64字符串

38 篇文章 0 订阅
10 篇文章 0 订阅
本文介绍了一个前端文件上传的实现方式,包括HTML输入元素的使用和jQuery的文件读取与发送。后端采用Spring框架接收上传的文件,进行类型检查,并将图片文件转换为Base64编码,最后返回处理结果。
摘要由CSDN通过智能技术生成

附件上传前端部分:

 <div>上传:<input type="file" name="file" id="file" keys=""></div>
$("#file").change(function (e) {
        var file = e.target.files[0] || e.dataTransfer.files[0];
        console.log(file);
        var key1 = $("#file").attr("keys");
        if(key1==undefined){
            key1="";
        }
        if (file) {
            var formData = new FormData();
            formData.append("file", file);
            formData.append("key1", key1);
            $.ajax({
                url: 'toImgKey',
                type: 'post',
                data: formData,
                cache: false,
                processData: false,
                contentType: false,
                dataType: 'json',
                mimeType: "multipart/form-data",
            }).success(function (res) {
                if(res==1){
                    parent.layer.msg("未上传附件");
                }else if(res==2){
                    parent.layer.msg("附件类型不符合");
                }else if(res==3){
                    parent.layer.msg("附件转换base64异常");
                }else if(res==4){
                    parent.layer.msg("写入异常");
                }else if(res==5){
                    parent.layer.msg("流程服务异常");
                }else {
                    $("#file").attr("keys",res);
                    parent.layer.msg("成功");
                }
            })
        }
    });

后台部分:

/**功能描述
    * @Desc
    * @Description
    * @Author 
    * @Date Created in 11:31 2019/2/25
    * @Params
    * @return  1未上传附件 2附件类型不符合 3附件转换base64异常 4写入MongoDB异常 5流程服务异常
    * @Version:
    *
    *
    */
    @ResponseBody
    @RequestMapping(value = "/toImgKey",method = RequestMethod.POST)
    public  String toImgKey(MultipartFile file,String key1){
           String base64;
           String key;
           //获取附件信息
        try {
            //判读当前系统
            //读取配置文件
            if(file==null) {
                log.info("未上传附件");
                return "1";
                // 判断是否为空文件
            }else if (file.isEmpty()) {
                log.info("未上传附件");
                return "1";
            }else {
                String fileName = file.getOriginalFilename();
                if(fileName.endsWith(".jpg") || fileName.endsWith(".png")){
                    InputStream in =file.getInputStream();
                    ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
                    copy(in,byteArrayOutputStream);
                    byte []img =byteArrayOutputStream.toByteArray();
                    base64=Base64.encode(img);
                }else {
                   log.info("附件类型不符合");
                    return "2";
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            log.info("流程服务异常");
            return "5";
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值