Discuss / Python / 搞明白部署的问题了,但是现在页面什么也没有,不着急,问下头像的问题

搞明白部署的问题了,但是现在页面什么也没有,不着急,问下头像的问题

Topic source

王新美男

#1 Created at ... [Delete] [Delete and Lock User]

老师,我现在想实现注册的时候可以上传头像,然后将头像保存在static/img/目录下,命名方式用用户id加后缀就可以。 但是,怎么上传图片呢? 我尝试了在注册按钮上面添加这样一行代码

<div class="uk-form-row">
    <input type="file" name="picfile" v-model="icon">
    <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-user"></i> 选择头像</button>
</div>

然后可以弹出选择图片了,选完后 我在JS里面加入了这些代码

$(function () {
    var vm = new Vue({
        el: '#vm',
        data: {
            name: '',
            email: '',
            password1: '',
            password2: '',
            icon:''
        },
        methods: {
            submit: function (event) {
                event.preventDefault();
                var $form = $('#vm');
                if (! this.name.trim()) {
                    return $form.showFormError('请输入名字');
                }
                if (! validateEmail(this.email.trim().toLowerCase())) {
                    return $form.showFormError('请输入正确的Email地址');
                }
                if (this.password1.length < 6) {
                    return $form.showFormError('口令长度至少为6个字符');
                }
                if (this.password1 !== this.password2) {
                    return $form.showFormError('两次输入的口令不一致');
                }
                if (this.icon.length <= 0) {
                    return $form.showFormError('需要上传头像');
                }
                var email = this.email.trim().toLowerCase();
                debugger
                $form.postJSON('/api/users', {
                    name: this.name.trim(),
                    email: email,
                    passwd: CryptoJS.SHA1(email + ':' + this.password1).toString(),
                    icon: this.icon
                }, function (err, r) {
                    if (err) {
                        return $form.showFormError(err);
                    }
                    return location.assign('/');
                });
            }
        }
    });
    $('#vm').show();
});

但是每次this.icon都是空数据,根本就没有图片的2进制数据,我应该怎么改呢阿峰老师? 这一块其实很建议老师您讲一讲,因为交互这块上传文件,感觉真的没人教网上的又看不懂...


  • 1

Reply