最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue+Flask實(shí)現(xiàn)圖片傳輸功能

 更新時(shí)間:2022年04月01日 19:21:11   作者:小周bb  
這篇文章主要為大家詳細(xì)介紹了Vue+Flask實(shí)現(xiàn)圖片傳輸功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Vue+Flask實(shí)現(xiàn)圖片傳輸功能的具體代碼,供大家參考,具體內(nèi)容如下

完整流程:

1.圖片轉(zhuǎn)為formdata 傳輸?shù)胶蠖?br />2.后端接收后,確定文件后綴名無(wú)誤,修改文件名并保存到固定的路徑中
3.前端請(qǐng)求圖片
4.后端根據(jù)圖片名字返回圖片數(shù)據(jù)流
5.前端將數(shù)據(jù)流處理,轉(zhuǎn)為圖片

1.Vue上傳

<template>
? ? <div>
? ? ? ? <input type="file" class="file" id ='file'>?
? ? ? ? <input type="submit" @click="uploadClick">
? ? </div>
</template>
<script>
export default {
? ?
? ? data () {
? ? ? ? return {}
? ? },
? ? methods:{
? ? ? ? uploadClick(){
? ? ? ? ? ? console.log(document.getElementById('file').files[0]);
? ? ? ? ? ? var formData = new window.FormData()?
? ? ? ? ? ? formData.append('file',document.getElementById('file').files[0])
? ? ? ? ? ? upload(formData)
? ? ? ? ? ??
? ? ? ? } ??
? ? }
}
</script>

//這是封裝的請(qǐng)求
export const upload = (file) => {
? return request({
? ? url: '/api/uavprp/upload',
? ? data: file,
? ? method: 'post',
? ? headers: {?
? ? ? 'Content-Type': 'multipart/form-data'
? ? ?},
? })
}

2.Flask接收

#請(qǐng)求中獲取到上傳的圖片
a = request.files.get('file')
#限制文件后綴名必須為圖片的類型
allowed_filename = set(['png', 'jpg', 'JPG', 'PNG'])
isallowed = '.' in filename and filename.rsplit('.', 1)[1] in allowed_filename
path = basedir + "/image/" ?#這里的image是自己創(chuàng)建的保存圖片文件夾路徑
img_name = change_file_name(a.filename,ImgID)#這是我自己定義的一個(gè)方法 為了修改圖片的名字為隨機(jī)生成的唯一ID,同時(shí)不修改后綴名
file_path = path + img_name#完整的保存路徑加圖片名
a.save(file_path)#保存

3.Vue請(qǐng)求圖片并轉(zhuǎn)換返回的數(shù)據(jù)流為圖片展示

<template>
?? ?<div>
? ? ? <img :src="ferUrl"/>
? ? </div>
</template>
<script>
export default {
? ?
? ? data () {
? ? ? ? return {
?? ??? ??? ?imgUrl: "",
?? ??? ?}
? ? },
? ? created(){
?? ??? ?getImg("ImgNXTIP298.jpg").then((res) => {
? ? ? ? this.imgUrl = window.URL.createObjectURL(res.data);//這里請(qǐng)求接收的一定是Blod類型數(shù)據(jù)
? ? ? ? console.log(this.imgUrl);
? ? ? });
?? ?}
}
</script>


//封裝的圖片請(qǐng)求
export const getImg = (imgID) => {
? return request({
? ? url: '/api/ferchoosen/getFerImg',
? ? method: 'get',
? ? responseType:"blob",
? ? params: {
? ? ? imgID
? ? }
? })
}

4.Flask接收前端請(qǐng)求返回圖片數(shù)據(jù)流

imgID = request.args["imgID"]
? ? if imgID == None:
? ? ? ? return output(msg="該圖片不存在")
? ? path = basedir + "/image/"
? ? image_data = open(os.path.join(path, '%s' % imgID), "rb").read()
? ? response = make_response(image_data)
? ? response.headers['Content-Type'] = 'image/png'#返回的內(nèi)容類型必須修改
? ? return response

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue如何自定義地址設(shè)置@

    vue如何自定義地址設(shè)置@

    這篇文章主要介紹了vue如何自定義地址設(shè)置@,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue實(shí)現(xiàn)兩個(gè)組件之間數(shù)據(jù)共享和修改操作

    vue實(shí)現(xiàn)兩個(gè)組件之間數(shù)據(jù)共享和修改操作

    這篇文章主要介紹了vue實(shí)現(xiàn)兩個(gè)組件之間數(shù)據(jù)共享和修改操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue3?實(shí)現(xiàn)右鍵菜單編輯復(fù)制粘貼功能

    vue3?實(shí)現(xiàn)右鍵菜單編輯復(fù)制粘貼功能

    在瀏覽器中,Vue3編輯器自帶默認(rèn)右鍵菜單,然而,在Electron桌面應(yīng)用中,這一功能需自行編寫代碼實(shí)現(xiàn),本文詳細(xì)介紹了如何在Vue3中手動(dòng)實(shí)現(xiàn)右鍵菜單的編輯、復(fù)制、粘貼功能,并提供了代碼示例,更多細(xì)節(jié)和相關(guān)教程可參考腳本之家的其他文章
    2024-10-10
  • 解決elementui中NavMenu導(dǎo)航菜單高亮問(wèn)題(解決多種情況)

    解決elementui中NavMenu導(dǎo)航菜單高亮問(wèn)題(解決多種情況)

    這篇文章主要介紹了解決elementui中NavMenu?導(dǎo)航菜單高亮問(wèn)題(解決多種情況),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 淺析Vue3中useRouter怎么在Vue組件外使用

    淺析Vue3中useRouter怎么在Vue組件外使用

    useRouter?是?Vue?3?Composition?API?中的鉤子(hook),它只能在?Vue?組件中使用,本文主要來(lái)和大家探討一下如何讓他在組件外使用,感興趣的可以了解下
    2024-11-11
  • vue + el-tree 實(shí)現(xiàn)插入節(jié)點(diǎn)自定義名稱數(shù)據(jù)的代碼

    vue + el-tree 實(shí)現(xiàn)插入節(jié)點(diǎn)自定義名稱數(shù)據(jù)的代碼

    這篇文章主要介紹了vue + el-tree 實(shí)現(xiàn)插入節(jié)點(diǎn)自定義名稱數(shù)據(jù)的代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • vue實(shí)現(xiàn)div拖拽互換位置

    vue實(shí)現(xiàn)div拖拽互換位置

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)div拖拽互換位置的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • vue項(xiàng)目之index.html如何引入JS文件

    vue項(xiàng)目之index.html如何引入JS文件

    這篇文章主要介紹了vue項(xiàng)目之index.html如何引入JS文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • VUE中setTimeout和setInterval自動(dòng)銷毀案例

    VUE中setTimeout和setInterval自動(dòng)銷毀案例

    這篇文章主要介紹了VUE中setTimeout和setInterval自動(dòng)銷毀案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • 探秘Vue異步更新機(jī)制中nextTick的原理與實(shí)現(xiàn)

    探秘Vue異步更新機(jī)制中nextTick的原理與實(shí)現(xiàn)

    nextTick?是?Vue?提供的一個(gè)重要工具,它的作用主要體現(xiàn)在幫助我們更好地處理異步操作,下面就跟隨小編一起來(lái)探索一下nextTick的原理與實(shí)現(xiàn)吧
    2024-02-02

最新評(píng)論

万盛区| 河池市| 威信县| 如东县| 成都市| 营山县| 汉源县| 延安市| 延长县| 宁蒗| 平顺县| 托里县| 新闻| 左云县| 沐川县| 平阴县| 阜南县| 营口市| 英山县| 将乐县| 石景山区| 台南市| 广西| 德阳市| 宿松县| 康定县| 黎城县| 咸宁市| 武威市| 肇源县| 堆龙德庆县| 四子王旗| 大埔县| 东乌| 呼和浩特市| 高陵县| 黄大仙区| 荣昌县| 关岭| 博客| 朝阳区|