Vue中使用wangEditor富文本编辑器|图片上传(含后端代码)
创始人
2024-11-15 13:35:05

一、效果

二、安装依赖

npm install wangeditor --save npm install @wangeditor/editor-for-vue@next --save

三、使用

在src下common文件夹下创建wangEditor文件夹,并在其文件夹下创建index.vue文件

  

在需要使用wangEditor的组件中编写如下信息:

     

创建文件上传API

  • uploadImg.js文件
// 图片上传 export const uploadImg = (formData) => {   return request.post("/upload/img", formData, {     headers: {       "Content-Type": "multipart/form-data"     },   }); };

需要自己编写后端代码,参考:

  • 控制层:
//    上传图片     @PostMapping("/uploadimg")     public Result uploadImg(@RequestParam("file") MultipartFile file) throws IOException {         String originalFilename = file.getOriginalFilename();//获取图片原始文件名         int index = originalFilename.lastIndexOf(".");         String extention = originalFilename.substring(index);//获得图片后缀名  .jpg         String fileName =  UUID.randomUUID().toString() + extention; //进行拼接         fileName = fileName.replace("-",""); //将文件路径中的-替换掉         String uploadQiniu = QiniuUtils.uploadQiniu(file.getBytes(), fileName, "imgUpload/");         return Result.success("上传图片成功",uploadQiniu);     }

七牛云存储方法

  • QiniuUtils.java
package xxx.xxx.xxx.utils;  import com.google.gson.Gson; import com.qiniu.common.QiniuException; import com.qiniu.common.Zone; import com.qiniu.http.Response; import com.qiniu.storage.BucketManager; import com.qiniu.storage.Configuration; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.util.Auth;  public class QiniuUtils {      //访问授权码     public  static String accessKey = "";     //秘密钥匙     public  static String secretKey = "";     //空间名称     public  static String bucket = "";     //外链域名     public static String domain = "";       //上传方式二:文件上传 通过上传文件的方式上传到存储空间     public static String uploadQiniu(byte[] bytes, String fileName,String path){         //构造一个带指定Zone对象的配置类         Configuration cfg = new Configuration(Zone.zone0());         //...其他参数参考类注释         UploadManager uploadManager = new UploadManager(cfg);          //默认不指定key的情况下,以文件内容的hash值作为文件名         String key = path + fileName;         Auth auth = Auth.create(accessKey, secretKey);         String upToken = auth.uploadToken(bucket);         try {             Response response = uploadManager.put(bytes, key, upToken);             //解析上传成功的结果             DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);             System.out.println(putRet.key);             System.out.println(putRet.hash);             //返回文件完整路径             return domain+"/"+putRet.key;         } catch (QiniuException ex) {             Response r = ex.response;             System.err.println(r.toString());             try {                 System.err.println(r.bodyString());                 return "";             } catch (QiniuException ex2) {                 //ignore             }         }         return "";     }       //删除文件 参数:存储的图片文件名     public static void deleteFileFromQiniu(String fileName,String path){         //构造一个带指定Zone对象的配置类         Configuration cfg = new Configuration(Zone.zone0());         String key = path + fileName;         Auth auth = Auth.create(accessKey, secretKey);         BucketManager bucketManager = new BucketManager(auth, cfg);         try {             bucketManager.delete(bucket, key);         } catch (QiniuException ex) {             //如果遇到异常,说明删除失败             System.err.println(ex.code());             System.err.println(ex.response.toString());         }     } } 

 

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...