成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

17.上傳和修改頭像

Shisui / 3326人閱讀

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

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

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


上傳控件的html代碼如下:

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

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


那么如何獲取上傳的文件呢,與獲取POST數(shù)據(jù)類似(上傳文件其實也是使用POST方法),在flask中使用request.files[name]獲取上傳的文件,其中name為對應(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方法要加上具體的路徑,默認不會保存到py文件所在的路徑,而是系統(tǒng)的根目錄,此時會提示Permission denied。我們接下來要把上傳的文件設(shè)置為用戶的新頭像,其實可以直接將useravatar_path修改為上傳文件的路徑,這樣整個功能就完成了,但為了規(guī)范,我們建立一個文件夾專門存放頭像文件(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庫的path來處理路徑相關(guān)的東西。隨便瀏覽個本地圖片并上傳,效果如下:

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

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

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

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41294.html

相關(guān)文章

  • 移動端cropper.js 裁剪圖片并上傳

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

    since1986 評論0 收藏0
  • 移動端cropper.js 裁剪圖片并上傳

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

    馬龍駒 評論0 收藏0
  • Django搭建個人博客:上傳頭像圖片

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

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

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

    douzifly 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<