Skip to content

Commit 2153807

Browse files
committed
上传富文本到oss 在富文本中调回
1 parent 1275564 commit 2153807

File tree

4 files changed

+129
-1
lines changed

4 files changed

+129
-1
lines changed

springboot-upload/src/main/java/com/upload/kss/controller/PageController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,10 @@ public String upload(){
1313
return "upload";
1414
}
1515

16+
17+
@GetMapping("/editor")
18+
public String editor(){
19+
return "wangeditor";
20+
}
21+
1622
}

springboot-upload/src/main/java/com/upload/kss/controller/UploadController.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import javax.servlet.http.HttpServletRequest;
1414
import java.io.IOException;
1515
import java.util.Collections;
16+
import java.util.HashMap;
1617
import java.util.Map;
1718
import java.util.Objects;
1819

@@ -41,5 +42,25 @@ public String upload(@RequestParam("file")MultipartFile multipartFile, HttpServ
4142

4243
}
4344

45+
// 上传富文本到oss 并调回
46+
@PostMapping("/upload/oss")
47+
@ResponseBody
48+
public Map<String,Object> uploadOss(@RequestParam("file")MultipartFile multipartFile, HttpServletRequest request){
49+
if (multipartFile.isEmpty()){
50+
return Collections.singletonMap("error","文件为空");
51+
}
52+
long size = multipartFile.getSize();
53+
String dir = request.getParameter("dir");
54+
// return uploadService.uploadIMG(multipartFile, dir);
55+
try {
56+
Map<String, Object> map = new HashMap<>();
57+
map.put("url", ossUploadService.uploadFile(multipartFile, dir));
58+
return map;
59+
} catch (Exception e) {
60+
throw new RuntimeException(e);
61+
}
62+
63+
}
64+
4465

4566
}
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
file:
22
staticPath: http://localhost:8777
33
staticPatternPath: /upimage/**
4-
uploadFolder: D:/mysoft/temp/
4+
uploadFolder: D:/mysoft/temp/
5+
spring:
6+
freemarker:
7+
settings:
8+
classic_compatible: true
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="UTF-8">
6+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
8+
<title>upload image demo</title>
9+
<link href="https://cdn.bootcdn.net/ajax/libs/normalize/8.0.1/normalize.min.css" rel="stylesheet">
10+
<link href="./css/view.css" rel="stylesheet">
11+
<link href="./css/editor.css" rel="stylesheet">
12+
<link href="https://unpkg.com/@wangeditor/editor@latest/dist/css/style.css" rel="stylesheet">
13+
</head>
14+
15+
<body>
16+
<p>
17+
Upload image
18+
</p>
19+
20+
<div>
21+
<div id="editor-toolbar" class="editor-toolbar"></div>
22+
<div id="editor-text-area" class="editor-text-area"></div>
23+
</div>
24+
25+
26+
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
27+
<script src="https://unpkg.com/@wangeditor/editor@latest/dist/index.js"></script>
28+
<script>
29+
const E = window.wangEditor
30+
31+
// Change language
32+
const LANG = location.href.indexOf('lang=en') > 0 ? 'en' : 'zh-CN'
33+
E.i18nChangeLanguage(LANG)
34+
35+
const editorConfig = { MENU_CONF: {} }
36+
editorConfig.MENU_CONF['uploadImage'] = {
37+
server: '/upload/oss',
38+
// server: '/api/upload-img-10s', // test timeout
39+
// server: '/api/upload-img-failed', // test failed
40+
// server: '/api/xxx', // test 404
41+
42+
timeout: 5 * 1000, // 5s
43+
44+
fieldName: 'file',
45+
meta: {dir: 'bbs'},
46+
metaWithUrl: true, // join params to url
47+
headers: { Accept: 'application/json' },
48+
49+
maxFileSize: 10 * 1024 * 1024, // 10M
50+
51+
base64LimitSize: 5 * 1024, // insert base64 format, if file's size less than 5kb
52+
53+
onBeforeUpload(file) {
54+
console.log('onBeforeUpload', file)
55+
56+
return file // will upload this file
57+
// return false // prevent upload
58+
},
59+
onProgress(progress) {
60+
console.log('onProgress', progress)
61+
},
62+
onSuccess(file, res) {
63+
console.log('onSuccess', file, res)
64+
},
65+
onFailed(file, res) {
66+
alert(res.message)
67+
console.log('onFailed', file, res)
68+
},
69+
onError(file, err, res) {
70+
alert(err.message)
71+
console.error('onError', file, err, res)
72+
},
73+
74+
customInsert(res, insertFn) { // JS 语法
75+
// res 即服务端的返回结果
76+
alert("调回来了"+res.toString())
77+
// 从 res 中找到 url alt href ,然后插入图片
78+
insertFn(res.url)
79+
},
80+
81+
}
82+
83+
const editor = E.createEditor({
84+
selector: '#editor-text-area',
85+
86+
config: editorConfig
87+
})
88+
89+
const toolbar = E.createToolbar({
90+
editor,
91+
selector: '#editor-toolbar',
92+
// config: {}
93+
})
94+
</script>
95+
</body>
96+
97+
</html>

0 commit comments

Comments
 (0)