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

Vue+Element+Springboot圖片上傳的實現(xiàn)示例

 更新時間:2021年11月25日 15:57:01   作者:java李楊勇  
最近在學習前段后分離,本文介紹了Vue+Element+Springboot圖片上傳的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下

最近沒事剛好聯(lián)系下vue+springboot前段后分離的項目、用上了圖片上傳功能、記錄一下。

前端待提交的表單部分代碼

<el-form-item label="封面圖片">
                <el-upload v-model="dataForm.title"
                        class="avatar-uploader"
                        :limit="1"
                        list-type="picture-card"
                        :on-preview="handlePictureCardPreview"
                        multiple
                        :http-request="uploadFile"
                        :on-remove="handleRemove"
                        :on-change='changeUpload'
                        :file-list="images">
                    <i class="el-icon-plus"></i>
                </el-upload>
            </el-form-item>

el-upload里面的元素解釋:

  • on-preview:點擊文件列表中已上傳的文件時的事件
  • on-remove:刪除文件時候調(diào)用的方法
  • on-change:文件狀態(tài)改變時的事件,添加文件、上傳成功和上傳失敗時都會被調(diào)用
  • file-list:上傳的文件列表或者默認回顯的數(shù)據(jù)展示渲染

retrun和data

return {
                images: [{name: 'food.jpg', url: 'https://img-blog.csdnimg.cn/20210329194832973.png'}],
                imageUrl: '',
                fileList: [],  // 文件上傳數(shù)據(jù)(多文件合一)
                dialogImageUrl: '',
                dialogVisible: false,
                options: [],
                content: '',
                editorOption: {},
                visible: false,
                dataForm: {
                    id: 0,
                    title: '',
                    content: '',
                    bz: ''
                },
                tempKey: -666666 // 臨時key, 用于解決tree半選中狀態(tài)項不能傳給后臺接口問題. # 待優(yōu)化
            }

預覽圖片和上傳圖片以及刪除圖片

changeUpload: function(file, fileList) {//預覽圖片
                this.fileList = fileList;
            },
            uploadFile(file){

            },
            handleRemove(file, fileList) {
            },
            handlePictureCardPreview(file) {
                this.dialogImageUrl = file.url;
                this.dialogVisible = true;
            },    

這里我是用fomrData對象進行提交的、因為只需要上傳一張單張封面圖片、還有添加其他的一些表單內(nèi)容進去

// 表單提交
            dataFormSubmit () {
                const form = new FormData()// FormData 對象
                form.append('file', this.fileList);
                form.append('title', this.dataForm.title);
                form.append('content', this.$refs.text.value);
                this.$refs['dataForm'].validate((valid) => {
                    if (valid) {
                        this.$http({
                            url: this.$http.adornUrl(`/sys/inform/${!this.dataForm.id ? 'save' : 'update'}`),
                            method: 'post',
                            data: form
                        }).then(({data}) => {
                            if (data && data.code === 0) {
                                this.$message({
                                    message: '操作成功',
                                    type: 'success',
                                    duration: 1500,
                                    onClose: () => {
                                        this.visible = false
                                        this.$emit('refreshDataList')
                                    }
                                })
                            } else {
                                this.$message.error(data.msg)
                            }
                        })
                    }
                })
            }

后臺的話通過HttpServletRequest request--WebUtils

.getNativeRequest(request, MultipartHttpServletRequest.class)來獲取文件請求并解析文件到服務器或本地

/**
 * @author lyy
 * 保存  PC-后臺上傳文件
 */
@RequestMapping(value = "sys/file/save", method = {RequestMethod.POST, RequestMethod.GET})
@Transactional
public R save(HttpServletRequest request) {
    String classify = request.getParameter("classify");
    MultipartHttpServletRequest multipartRequest = WebUtils
            .getNativeRequest(request, MultipartHttpServletRequest.class);
    String fileName = "";
    if (multipartRequest != null) {
        Iterator<String> names = multipartRequest.getFileNames();
        while (names.hasNext()) {
            List<MultipartFile> files = multipartRequest.getFiles(names.next());
            if (files != null && files.size() > 0) {
                for (MultipartFile file : files) {
                    fileName = file.getOriginalFilename();
                    String SUFFIX = FileUtil.getFileExt(fileName);
                    File uFile = new File();
                    uFile.setFileName(fileName);
                    uFile.setClassify(classify);
                    uFile.setCreateTime(new Date());
                    uFile.setFileType(SUFFIX);
                    String uuid = FileUtil.uuid();
                    try {
                        uFile.setPath(uploadFile(uuid,file) +uuid+"."+SUFFIX);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                     fileService.save(uFile);
                }
            }
        }
    }
    return R.ok();
}

上傳文件到本地的靜態(tài)方法

/**
     * 上傳文件
     *@author lyy
     * @param file
     * @return
     * @throws IOException
     * @throws IllegalStateException
     */
    public static String uploadFile(String uuid, MultipartFile file) throws IllegalStateException, IOException {
        String defaultUrl = MyFileConfig.getFilePath();
        String Directory = java.io.File.separator ;
        String realUrl = defaultUrl + Directory;
        java.io.File realFile = new  java.io.File(realUrl);
        if (!realFile.exists() && !realFile.isDirectory()) {
            realFile.mkdirs();
        }
        String fullFile = realUrl + uuid + "."+FileUtil.getFileExt(file.getOriginalFilename());
        file.transferTo(new java.io. File(fullFile));
        String relativePlanUrl = Directory;
        return relativePlanUrl.replaceAll("\\", "/");
    }

?到此這篇關(guān)于Vue+Element+Springboot圖片上傳的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)Vue+Element+Springboot圖片上傳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue插件實現(xiàn)過程中遇到的問題總結(jié)

    Vue插件實現(xiàn)過程中遇到的問題總結(jié)

    隨著Vue.js越來越火,Vue.js 的相關(guān)插件也在不斷的被貢獻出來,數(shù)不勝數(shù),這篇文章主要給大家介紹了關(guān)于Vue插件實現(xiàn)過程中遇到的問題,需要的朋友可以參考下
    2021-08-08
  • 基于vue編寫一個月餅連連看游戲

    基于vue編寫一個月餅連連看游戲

    中秋節(jié)快要到啦,我們一起用Vue創(chuàng)建一個簡單的連連看游戲,連連看大家一定都玩過吧,通過消除相同的圖案來清理棋盤,小編將一步步引導大家完成整個游戲的制作過程,讓我們開始吧,一起為中秋節(jié)增添一些互動和娛樂
    2023-09-09
  • 關(guān)于Vue Router的10條高級技巧總結(jié)

    關(guān)于Vue Router的10條高級技巧總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于Vue Router的10條高級技巧,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • vue3路由配置以及路由跳轉(zhuǎn)傳參詳解

    vue3路由配置以及路由跳轉(zhuǎn)傳參詳解

    路由跳轉(zhuǎn)的同時傳遞參數(shù)是比較常見的,下面這篇文章主要給大家介紹了關(guān)于vue3路由配置以及路由跳轉(zhuǎn)傳參的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • 詳解windows下vue-cli及webpack 構(gòu)建網(wǎng)站(二)導入bootstrap樣式

    詳解windows下vue-cli及webpack 構(gòu)建網(wǎng)站(二)導入bootstrap樣式

    這篇文章主要介紹了詳解windows下vue-cli及webpack 構(gòu)建網(wǎng)站(二)導入bootstrap樣式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • vue 如何實現(xiàn)表單校驗

    vue 如何實現(xiàn)表單校驗

    這篇文章主要介紹的是vue 如何實現(xiàn)表單校驗的方法,又代碼詳細解說,感興趣的小伙伴可以參考下面文章的具體內(nèi)容
    2021-09-09
  • springboot?vue測試平臺前端項目查詢新增功能

    springboot?vue測試平臺前端項目查詢新增功能

    這篇文章主要為大家介紹了springboot+vue測試平臺前端項目實現(xiàn)查詢新增功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Vue使用輪詢定時發(fā)送請求代碼

    Vue使用輪詢定時發(fā)送請求代碼

    這篇文章主要介紹了Vue使用輪詢定時發(fā)送請求代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue2更改data里的變量不生效時,深層更改data里的變量問題

    vue2更改data里的變量不生效時,深層更改data里的變量問題

    這篇文章主要介紹了vue2更改data里的變量不生效時,深層更改data里的變量問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • element-plus日歷(Calendar)動態(tài)渲染以及避坑指南

    element-plus日歷(Calendar)動態(tài)渲染以及避坑指南

    這篇文章主要給大家介紹了關(guān)于element-plus日歷(Calendar)動態(tài)渲染以及避坑指南的相關(guān)資料,這是最近幫一個后端朋友處理一個前端問題,elementUI中calendar日歷組件內(nèi)容進行自定義顯示,實現(xiàn)類似通知事項的日歷效果,需要的朋友可以參考下
    2023-08-08

最新評論

穆棱市| 和田县| 博乐市| 凤山县| 准格尔旗| 成武县| 蒲城县| 淮南市| 华池县| 罗田县| 古浪县| 新丰县| 京山县| 宝丰县| 甘孜县| 疏勒县| 芷江| 阜康市| 民乐县| 德江县| 辽阳县| 许昌县| 土默特左旗| 玉树县| 罗甸县| 东丽区| 屏东县| 武夷山市| 休宁县| 福安市| 嫩江县| 长治市| 澄江县| 芦溪县| 巴林左旗| 冀州市| 锦州市| 昌宁县| 青海省| 永城市| 息烽县|