前端上传到七牛云图片

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style scoped lang="scss">
        .home-van-cell {
            background-color: #fff;
            overflow: hidden;
            padding: 1.25rem 0.6875rem 1.25rem 0.703125rem;

            .home-van-cell__title {
                float: left;
                padding-top: 1.34375rem;

                span {
                    font-size: 1rem;
                    font-family: PingFangSC-Regular, PingFang SC;
                    font-weight: 400;
                    color: rgba(34, 34, 34, 1);
                }
            }

            .home-van-cell__value {
                float: right;

                img {
                     4.0625rem;
                    height: 4.0625rem;
                    border-radius: 50%;
                }

                .hiddenInput {
                    display: none;
                }
            }
        }
    </style>
</head>

<body>
    <div class="home-van-cell">
        <div class="home-van-cell__title">
            <span>我的头像</span>
        </div>
        <div class="home-van-cell__value">
            <div class="head_img" @click.stop="uploadHeadImg">
                <img :src="avatar" />
            </div>
            <input type="file" accept="image/*" @change="handleFile" ref="hiddenInput" class="hiddenInput" />
        </div>
    </div>

    <script>
        export default {
            data() {
                return {
                    phone: "",
                    verifycode: "",
                    codeText: "获取验证码",
                    disabledCodeBtn: true,
                }
            },
            methods: {

                uploadHeadImg: function () {
                    this.$refs.hiddenInput.click();
                },
                // 将头像显示
                handleFile: function (e) {
                    let $target = e.target || e.srcElement;
                    let file = $target.files[0];
                    var reader = new FileReader();
                    reader.onload = data => {
                        let res = data.target || data.srcElement;
                        this.avatar = res.result;
                    };
                    return new Promise((resolve, reject) => {
                        alert("上传中...");

                        let splitArray = file.name.split(".");
                        let current = moment()
                            .format("YYYYMMDD")
                            .toString(),
                            prefix = moment(file.lastModified)
                            .format("HHmmss")
                            .toString(),
                            suffix =
                            new Date().getTime() + "." + splitArray[splitArray.length - 1],
                            key = encodeURI(`${current}/${prefix}_${suffix}`);
                        // 七牛云接口
                        getUpToken({
                                key
                            })
                            .then(res => {
                                let data = new FormData();
                                data.append("token", res.data.uptoken);
                                data.append("key", key);
                                data.append("file", file);
                                // 上传到七牛云返回图片路径
                                axios({
                                    url: "//upload.qiniup.com",
                                    method: "POST",
                                    data: data,
                                    headers: {
                                        F "Content-Type": "multipart/form-data"
                                    }
                                }).then(res => {
                                    alert("上传成功...");

                                    this.avatar = res.data.domain + res.data.truekey;
                                });
                            })
                            .catch(error => {
                                // console.log(error);
                                alert("上传成功");
                                reject(error);
                            });
                    });
                }
            }
        }
    </script>
</body>

</html>
原文地址:https://www.cnblogs.com/1609359841qq/p/13272168.html