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

Vue3?使用v-md-editor如何動(dòng)態(tài)上傳圖片的方法實(shí)現(xiàn)

 更新時(shí)間:2022年08月07日 08:24:23   作者:水三丫  
本文主要介紹了Vue3?使用v-md-editor如何動(dòng)態(tài)上傳圖片,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前端代碼:

<v-md-editor 
   :autofocus="true"
   v-model="blog.content" 
   height="510px"
   placeholder="請(qǐng)輸入內(nèi)容"
   left-toolbar="undo redo clear | h bold italic strikethrough quote | ul ol table hr | image | save "
   :disabled-menus="[]"
   @upload-image="handleUploadImage"
             >
</v-md-editor>

按我以上配置后,你把圖片插入或者從本地拖入,就可以激發(fā)upload-image綁定的函數(shù),我這的名稱為:handleUploadImage

先看看這個(gè)圖片編輯時(shí)的圖片吧

大致流程圖

在setup看看這個(gè)函數(shù)(這是我寫好的)

files:表示你拖入的圖片文件,可以是多個(gè),也可以是一個(gè)

insertImage:url就表示你需要回顯的地址;desc就是名稱;markdown語法:![desc](url)

function handleUploadImage(event,insertImage,files){
    for(let i in files){
        const formData = new FormData();
        formData.append('file', files[i]);
        proxy.$axios.post(`${proxy.PATH}/uploadImg`,formData).then(
            response => {
                insertImage({
                    url:response.data,
                    desc: 'DESC',
                })
            },
            error => {
                console.log('請(qǐng)求失敗了',error.message)
            }
        )
    }
}

有沒有人和我一樣去看過這個(gè)file長什么樣子

可以看到我上面發(fā)送了一個(gè)請(qǐng)求到后端,標(biāo)簽帶上了這個(gè)文件;就是下面這段代碼

proxy.$axios.post(`${proxy.PATH}/uploadImg`,formData).then(
            response => {
                insertImage({
                    url:response.data,
                    desc: 'DESC',
                })
            },
            error => {
                console.log('請(qǐng)求失敗了',error.message)
            }
        )

后端的代碼:

請(qǐng)求的位置

package com.mhy.blog.controller;
import com.mhy.blog.utils.ConstUtils;
import com.mhy.blog.utils.FileUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.util.Objects;
 
@RestController
public class FileController {
    @PostMapping("/uploadImg")
    public String img(@RequestParam(value = "file") MultipartFile file){
        try{
            return FileUtils.uploadImg(file,
                    ConstUtils.SAVE_IMG_PATH,
                    Objects.requireNonNull(file.getOriginalFilename()),
                    ConstUtils.REQUEST_IMG_PATH);
        }catch (Exception e){
            e.printStackTrace();
            return ConstUtils.IMG_UPLOAD_FAILURE;
        }
    }
}

注意里面有我定制的一些常量:

public static String SAVE_IMG_PATH = "D:\\JAVAIDEA\\Blog\\java\\blog\\src\\main\\resources\\public\\img\\";
 
public static String REQUEST_IMG_PATH = "http://localhost:8888/blog/img/";
public static String IMG_UPLOAD_FAILURE = "圖片上傳失敗";

看看這個(gè)工具方法:FileUtils.uploadImg

package com.mhy.blog.utils;
 
import org.springframework.web.multipart.MultipartFile;
 
import java.io.File;
import java.util.Random;
import java.util.UUID;
 
 
public class FileUtils {
 
    public static String uploadImg(MultipartFile file, String path1, String name, String path2){
        // 通過uuid產(chǎn)生一個(gè)圖片名字
        String uuid = UUID.randomUUID().toString().trim().replaceAll("-","");
        String imgName = uuid + name;
        // 這是我隨機(jī)選擇了一文件夾 這里只是我個(gè)人愛好
        String code = Integer.toString(new Random().nextInt(5) + 1);
        // 拼接路徑
        String imgPath = path1 + "img" + code + "\\";
        String requestPath = path2 + "img" + code + "/";
 
        try {
            // 上傳操作
            File imgFile = new File(imgPath, imgName);
            file.transferTo(imgFile);
        } catch (Exception e) {
            e.printStackTrace();
        }
		// 返回圖片的路就
        return requestPath + imgName;
    }
}

后端圖片的位置

測(cè)試:

順便附帶上我的main.js吧

// markdown 的引入
import VueMarkdownEditor from '@kangc/v-md-editor'
import '@kangc/v-md-editor/lib/style/base-editor.css'
import VMdpreview from '@kangc/v-md-editor/lib/preview'
import vuepressTheme from '@kangc/v-md-editor/lib/theme/vuepress.js'
import '@kangc/v-md-editor/lib/theme/style/vuepress.css'
 
// github主題
import githubTheme from '@kangc/v-md-editor/lib/theme/github.js'
import '@kangc/v-md-editor/lib/theme/style/github.css'
// 引入 highlight核心代碼
import hljs from 'highlight.js/lib/core'
// 引入代碼高亮
import json from 'highlight.js/lib/languages/json'
import java from 'highlight.js/lib/languages/java'
import javascript from 'highlight.js/lib/languages/javascript'
import c from 'highlight.js/lib/languages/c'
import cpp from 'highlight.js/lib/languages/cpp'
import armasm from 'highlight.js/lib/languages/armasm'
// 按需引入 代碼高亮
hljs.registerLanguage('json',json)
hljs.registerLanguage('java',java)
hljs.registerLanguage('javascript',javascript)
hljs.registerLanguage('c',c)
hljs.registerLanguage('cpp',cpp)
hljs.registerLanguage('armasm',armasm)
 
// 配置
VMdpreview.use(vuepressTheme)
VueMarkdownEditor.use(githubTheme,{
    Hljs: hljs,
    extend(md){
        // 擴(kuò)展插件
    }
})
 
const app = createApp(App)
app.use(VueMarkdownEditor)
app.use(VMdpreview)
app.mount('#app')

到此這篇關(guān)于Vue3 使用v-md-editor如何動(dòng)態(tài)上傳圖片的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Vue3動(dòng)態(tài)上傳圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue-router鉤子執(zhí)行順序示例解析

    vue-router鉤子執(zhí)行順序示例解析

    這篇文章主要為大家介紹了vue-router鉤子執(zhí)行順序示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • vue3中各種類型文件進(jìn)行預(yù)覽功能實(shí)例

    vue3中各種類型文件進(jìn)行預(yù)覽功能實(shí)例

    在vue移動(dòng)端項(xiàng)目中經(jīng)常遇到這樣的需求,對(duì)一些上傳的附件可以點(diǎn)擊之后在線預(yù)覽,所以下面這篇文章主要給大家介紹了關(guān)于vue3中各種類型文件進(jìn)行預(yù)覽功能的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • vue?使用mescroll.js框架實(shí)現(xiàn)下拉加載和上拉刷新功能

    vue?使用mescroll.js框架實(shí)現(xiàn)下拉加載和上拉刷新功能

    這篇文章主要介紹了vue?使用mescroll.js框架?實(shí)現(xiàn)下拉加載和上拉刷新功能,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 教你搭建按需加載的Vue組件庫(小結(jié))

    教你搭建按需加載的Vue組件庫(小結(jié))

    這篇文章主要介紹了教你搭建按需加載的Vue組件庫(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • vue 集成 vis-network 實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)鋱D的方法

    vue 集成 vis-network 實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)鋱D的方法

    這篇文章主要介紹了vue 集成 vis-network 實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)鋱D的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì) ,需要的朋友可以參考下
    2019-08-08
  • 淺析Visual Studio Code斷點(diǎn)調(diào)試Vue

    淺析Visual Studio Code斷點(diǎn)調(diào)試Vue

    本篇文章給大家總結(jié)了Visual Studio Code斷點(diǎn)調(diào)試Vue的方法以及心得分享,需要的朋友參考學(xué)習(xí)下。
    2018-02-02
  • 在Vue里如何把網(wǎng)頁的數(shù)據(jù)導(dǎo)出到Excel的方法

    在Vue里如何把網(wǎng)頁的數(shù)據(jù)導(dǎo)出到Excel的方法

    這篇文章主要介紹了在Vue里如何把網(wǎng)頁的數(shù)據(jù)導(dǎo)出到Excel,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Vue項(xiàng)目設(shè)置多個(gè)靜態(tài)文件及自定義靜態(tài)文件目錄的方案詳解

    Vue項(xiàng)目設(shè)置多個(gè)靜態(tài)文件及自定義靜態(tài)文件目錄的方案詳解

    本文介紹了如何在Vue項(xiàng)目中配置多個(gè)靜態(tài)文件目錄,并提供了使用Vite和Webpack實(shí)現(xiàn)的示例,通過在vite.config.ts或vue.config.js中引入相關(guān)插件和配置,可以輕松實(shí)現(xiàn)自定義靜態(tài)文件目錄,希望這些內(nèi)容對(duì)您有所幫助,感興趣的朋友一起看看吧
    2025-01-01
  • 詳解Vue-axios 設(shè)置請(qǐng)求頭問題

    詳解Vue-axios 設(shè)置請(qǐng)求頭問題

    這篇文章主要介紹了Vue-axios 設(shè)置請(qǐng)求頭問題,文中給大家提到了axios設(shè)置請(qǐng)求頭內(nèi)容的方法,需要的朋友可以參考下
    2018-12-12
  • Vue3實(shí)現(xiàn)跨頁面?zhèn)髦档膸追N常見方法

    Vue3實(shí)現(xiàn)跨頁面?zhèn)髦档膸追N常見方法

    在Vue 3中,跨頁面?zhèn)髦悼梢酝ㄟ^多種方式實(shí)現(xiàn),具體選擇哪種方法取決于應(yīng)用的具體需求和頁面間的關(guān)系,本文列舉了幾種常見的跨頁面?zhèn)髦捣椒?感興趣的同學(xué)跟著小編來看看吧
    2024-04-04

最新評(píng)論

安泽县| 弋阳县| 武乡县| 莱阳市| 固安县| 洞头县| 赤壁市| 黔西| 南京市| 绥棱县| 泾源县| 东辽县| 潞西市| 虞城县| 宣城市| 七台河市| 天台县| 石嘴山市| 且末县| 鲁甸县| 昂仁县| 永安市| 开阳县| 额济纳旗| 富民县| 将乐县| 阿坝县| 奉贤区| 井研县| 舒城县| 枞阳县| 博湖县| 抚远县| 全南县| 霞浦县| 通许县| 永顺县| 子洲县| 哈巴河县| 太湖县| 奇台县|