欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

django頭像上傳預(yù)覽功能

頁(yè)面格式

django頭像上傳預(yù)覽功能

創(chuàng)新互聯(lián)建站是專業(yè)的和林格爾網(wǎng)站建設(shè)公司,和林格爾接單;提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行和林格爾網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

注冊(cè)頁(yè)面

django頭像上傳預(yù)覽功能
這里可以看到有頭像按鈕,

頭像需求

  • 有默認(rèn)的頭像
  • 點(diǎn)擊頭像就可以上傳圖片
  • 上傳圖片后可以預(yù)覽
生成默認(rèn)的頭像

上傳默認(rèn)圖片到指定文件夾,然后把img標(biāo)簽的src指定到這里就可以,
django頭像上傳預(yù)覽功能

點(diǎn)擊頭像上傳圖片

默認(rèn)添加了<input type="file">后會(huì)在圖片下面顯示上傳文件夾的選項(xiàng),這個(gè)和我們當(dāng)初想的不一樣,我們可以通過(guò)把input標(biāo)簽和img標(biāo)簽重疊到一起,然后讓input標(biāo)簽隱藏起來(lái),這樣出來(lái)的效果就是點(diǎn)擊圖片就可以點(diǎn)到input文件這個(gè)屬性了

        <div >
            <img id="previewIMG" src="/static/imgs/default.png" alt="頭像" >
            <input type="file" id="Imgfile" class="f1">
        </div>

f1 屬性為: .f1{
position: absolute;width: 80px;height: 80px;top: 0;left: 0;opacity: 0
}

鼠標(biāo)放到圖像上面會(huì)顯示讓上傳文件
django頭像上傳預(yù)覽功能

上傳圖像后預(yù)覽

實(shí)現(xiàn)這個(gè)功能可以有三種方式:

  • 直接把文件存到后臺(tái)硬盤上,然后在從硬盤上讀取出來(lái),使用到的是ajax,formData,可以參考博客https://blog.51cto.com/sgk2011/2085605
  • 下2種方式通過(guò)瀏覽器的方式,這個(gè)對(duì)瀏覽器有要求
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登陸頁(yè)</title>
    <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.css">
    <style>
        .login {
            margin: 0 auto;
            margin-top: 80px;
            width: 600px;
        }

        .btn_color {
            background-color: ghostwhite;
        }
        .f1{
            position: absolute;width: 80px;height: 80px;top: 0;left: 0;opacity: 0
        }
    </style>
</head>
<body>
<div class="login">

    <form class="form-horizontal" method="post" action="/register/" enctype="multipart/form-data">
        <div >
            <img id="previewIMG" src="/static/imgs/default.png" alt="頭像" >
            <input type="file" id="Imgfile" class="f1">
        </div>
        <br>
        <div class="form-group">
            <label class="col-sm-2 control-label">用戶名</label>
            <div class="col-sm-10">
                {#      <input type="text" class="form-control" placeholder="用戶名" name="user">#}
                {{ obj.username }}
            </div>
        </div>
        <div class="form-group">
            <label class="col-sm-2 control-label">密碼</label>
            <div class="col-sm-10">
                {#      <input type="password" class="form-control"  placeholder="密碼" name="pwd1">#}
                {{ obj.password1 }}
            </div>
        </div>
        <div class="form-group">
            <label class="col-sm-2 control-label">確認(rèn)密碼</label>
            <div class="col-sm-10">
                {#      <i?nput type="password" class="form-control"  placeholder="確認(rèn)密碼" name="pwd2">#}
                {{ obj.password2 }}
            </div>
        </div>
        <div class="form-group">
            <label class="col-sm-2 control-label">驗(yàn)證碼</label>
            <div class="col-sm-5">
                <input type="text" class="form-control" placeholder="驗(yàn)證碼" name="code">
            </div>
            <div class="col-sm-5">
                <img  src="/check_code/">
            </div>
        </div>
        <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
                <div class="checkbox">
                    <label>
                        <input type="checkbox"> Remember me
                    </label>
                </div>
            </div>
        </div>
        <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
                <input type="submit" class="btn btn-default btn_color" value="登陸">
            </div>
        </div>
    </form>
</div>
<script src="/static/jquery-1.12.4.js"></script>
<script>
    $(function () {
        bindAvatar3();
    });
    /*
    function bindAvatar1() {
        $('#Imgfile').change(function () {
            var csrf = $("input[name='csrfmiddlewaretoken']").val();
            var formData = new FormData();
            formData.append("csrfmiddlewaretoken",csrf)
            formData.append('Imgfile',$(this)[0].files[0])
            console.log(formData)
            $.ajax({
                url:'/avatar_upload/',
                type:'POST',
                contentType:false,
                processData:false,
                success:function (args) {
                    console.log(args)
                }
            })
        })
    }
    */
    function bindAvatar2() {
        $('#Imgfile').change(function () {
            var obj = $(this)[0].files[0];
            var v = window.URL.createObjectURL(obj)//傳obj這個(gè)文件對(duì)象,相當(dāng)于把這個(gè)文件上傳到了瀏覽器,這個(gè)時(shí)候就可以預(yù)覽了
            $('#previewIMG').attr('src',v)//找到img標(biāo)簽,把src修改后就可以訪問(wèn)了,但是對(duì)于瀏覽器有兼容性
{#             window.URL.revokeObjectURL(v);//手動(dòng)清除內(nèi)存中,要想手動(dòng),需要加載完畢再去釋放#}
            $('#previewIMG').load(function () {
                window.URL.revokeObjectURL(v);
            })
        })
    }

    function bindAvatar3() {
        $('#Imgfile').change(function () {
            var obj = $(this)[0].files[0];
            var reader = new FileReader();

            reader.onload = function (e) {
                $('#previewIMG').attr('src',this.result)
            }
            reader.readAsDataURL(obj);
        })
    }
</script>
</body>
</html>

如果想要兼容的話,就對(duì)上面的方法做一個(gè)判斷

        function bindAvatar(){
            if(window.URL.createObjectURL){
                bindAvatar2();
            }else if(window.FileReader){
                bindAvatar3()
            }else{
                bindAvatar1();
            }
        }

新聞名稱:django頭像上傳預(yù)覽功能
當(dāng)前路徑:http://chinadenli.net/article8/jhjdop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站關(guān)鍵詞優(yōu)化品牌網(wǎng)站制作網(wǎng)站策劃網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司