【JS实战】隐藏input -file,点击图片触发文件上传,并存到数据库中

在写个人博客过程中,遇到一个问题,点击图片更换图片,并将图片文件上传到数据库

这个也可以应用到上传头像,改变头像

下面来看一下实现过程:

html部分


        <img src="${data.imgUrl}" id ="imgs"/>
        <input hidden
        type="file" id="files1" multiple onchange ="imgChange()" size="mini">
    

css部分就是将两个标签的宽高一一样就行,并且位置重叠

js部分

主要用到了promise,其中发送请求用到了fetch

// 图片处理
        async function imgUpload() {
            let data = $("#files1").get(0).files[0];
            let formData = new FormData();
            formData.append("blogimg", data); //属性img:data?
            const url = `http://localhost:${port}/api/upload/blogImg`;
            const config = {
                method: 'POST',
                body: formData
            }
            const req = new Request(url, config);
            //响应对象是一个pormise
            const res = await fetch(req);
            //得到响应内容
            const pro = await res.json();
            return pro;

        }
        //点击图片修改
        async function imgUpdate() {
            //图片处理
            let img = await imgUpload();
            img = img.data;

            var file = $('#files1');
            var imgs = $('#imgs');
            var imgsurl = URL.createObjectURL(file.files[0]); //图片转换
            imgs[0].src = imgsurl //展示图片

        }
        //通过点击图片来触发文件上传按钮
        $("#imgs").click(() => {

            $("#files1").click();
        });

最后展示结果

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值