国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

17.上傳和修改頭像

Shisui / 3324人閱讀

摘要:上傳文件,需要使用到的控件,其為。提供了一個(gè)美觀且功能強(qiáng)大上傳控件,樣式如下它提供文件的預(yù)覽,并且自帶和按鈕。此時(shí)修改頭像的頁面是這樣的,我們先完成功能,后續(xù)再美化。修改視圖函數(shù),如下這里用了庫(kù)的來處理路徑相關(guān)的東西。

上傳文件,需要使用到htmlinput控件,其typefileBoostrap提供了一個(gè)美觀且功能強(qiáng)大上傳控件,樣式如下:

它提供文件的預(yù)覽,并且自帶removeupload按鈕。要使用這個(gè)控件,需要再額外引入相應(yīng)的jscss文件,如下:


上傳控件的html代碼如下:

我把data-show-preview設(shè)置為false,關(guān)閉了上傳文件的預(yù)覽,更多關(guān)于這個(gè)控件的內(nèi)容可以自行搜索。

此時(shí)修改頭像的頁面是這樣的,我們先完成功能,后續(xù)再美化。


那么如何獲取上傳的文件呢,與獲取POST數(shù)據(jù)類似(上傳文件其實(shí)也是使用POST方法),在flask中使用request.files[name]獲取上傳的文件,其中name為對(duì)應(yīng)input控件的name值(name="avatar_upload"),然后使用文件的save方法即可保存。例如:

@app.route("/user/avatar/", methods=["GET", "POST"])
def avatar():
    if request.method == "GET":
        return render_template("avatar.html")
    else:
        file = request.files["avatar_upload"]
        path = "D:FlaskHarpQAstatic"
        file.save(path + file.filename)
        return "Saved"

注意save方法要加上具體的路徑,默認(rèn)不會(huì)保存到py文件所在的路徑,而是系統(tǒng)的根目錄,此時(shí)會(huì)提示Permission denied。我們接下來要把上傳的文件設(shè)置為用戶的新頭像,其實(shí)可以直接將useravatar_path修改為上傳文件的路徑,這樣整個(gè)功能就完成了,但為了規(guī)范,我們建立一個(gè)文件夾專門存放頭像文件(static/images/uploads),并且以用戶id來命名文件,這樣就避免出現(xiàn)文件名重復(fù)導(dǎo)致被覆蓋。修改視圖函數(shù),如下:

@app.route("/user/avatar/", methods=["GET", "POST"])
def avatar():
    if request.method == "POST":
        file = request.files["avatar_upload"]
        base_path = path.abspath(path.dirname(__file__))
        filename = str(g.user.id) + "." + file.filename.rsplit(".", 1)[1]
        file_path = path.join(base_path, "static", "images", "uploads", filename)
        file.save(file_path)
        g.user.avatar_path = "images/uploads/" + filename
        db.session.commit()
    return render_template("avatar.html")

這里用了os庫(kù)的path來處理路徑相關(guān)的東西。隨便瀏覽個(gè)本地圖片并上傳,效果如下:

此時(shí)文件已經(jīng)上傳到了uploads文件夾:

數(shù)據(jù)圖中的avatar_path也更新了:

此外,我們還可以添加上傳文件大小限制,安全限制等更多的功能,在此就不演示了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/41294.html

相關(guān)文章

  • 移動(dòng)端cropper.js 裁剪圖片并上傳

    摘要:參考效果引入使用結(jié)構(gòu)頭像頭像截圖彈窗取消截圖頭像保存引用具體使用可查看官網(wǎng)修改頭像參加文件點(diǎn)擊圖片初始化關(guān)閉彈窗保存截圖保存數(shù)據(jù) 參考效果:http://www.17sucai.com/previe... 引入cropper使用 HTML結(jié)構(gòu) 頭像 ...

    since1986 評(píng)論0 收藏0
  • 移動(dòng)端cropper.js 裁剪圖片并上傳

    摘要:參考效果引入使用結(jié)構(gòu)頭像頭像截圖彈窗取消截圖頭像保存引用具體使用可查看官網(wǎng)修改頭像參加文件點(diǎn)擊圖片初始化關(guān)閉彈窗保存截圖保存數(shù)據(jù) 參考效果:http://www.17sucai.com/previe... 引入cropper使用 HTML結(jié)構(gòu) 頭像 ...

    馬龍駒 評(píng)論0 收藏0
  • Django搭建個(gè)人博客:上傳頭像圖片

    摘要:到目前為止我們的博客處理的都是文字。比如說圖片上傳是年月日,則圖片會(huì)保存在中。添加標(biāo)簽用于上傳圖片。除了上傳,圖片的處理還包括驗(yàn)證格式改變尺寸更名裁剪美化等多種多樣的需求。如果上傳的圖片重名,會(huì)導(dǎo)致報(bào)錯(cuò)嗎請(qǐng)?jiān)囋嚳础? 到目前為止我們的博客處理的都是文字。現(xiàn)代互聯(lián)網(wǎng)早就進(jìn)入了讀圖時(shí)代,圖片的維護(hù)、展示也就相當(dāng)重要。 上一章中預(yù)留了avatar字段,用來保存用戶上傳的頭像,現(xiàn)在我們來實(shí)現(xiàn)這個(gè)...

    summerpxy 評(píng)論0 收藏0
  • TP5整合阿里云OSS上傳文件第二節(jié),異步上傳頭像實(shí)現(xiàn),

    摘要:版本也是我最喜歡的方式這個(gè)代碼有點(diǎn)黏在一起了湊合看把李昊天創(chuàng)建實(shí)例服務(wù)器異步接受地址指定選擇文件的按鈕容器禁止多選不壓縮選擇之后自動(dòng)上傳防止低版本瀏覽器用到了只允許選擇圖片文件。 TP5整合阿里云OSS上傳文件第二節(jié),上傳頭像實(shí)現(xiàn)首先先看一個(gè)效果圖上傳失敗效果圖:showImg(https://segmentfault.com/img/bVbaJLZ?w=983&h=561);上傳成功...

    douzifly 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<