feat(image): 优化图片上传和预览功能
- 修改图片上传接口,支持用户 ID 和 Markdown ID 参数 - 实现在线预览功能,支持多种文件类型 - 优化图片插入到 Markdown 编辑器的逻辑 - 更新数据库配置和连接字符串
This commit is contained in:
@@ -29,10 +29,12 @@ export const deleteImages = (list) => {
|
||||
})
|
||||
}
|
||||
// 上传图片
|
||||
export const uploadImage = (file) => {
|
||||
export const uploadImage = (file, userId, markdownId) => {
|
||||
const formData = new FormData()
|
||||
if (file) formData.append('file', file)
|
||||
return axiosApi.post('/api/images?markdownId', formData, {
|
||||
if (userId) formData.append('userId', userId)
|
||||
if (markdownId) formData.append('markdownId', markdownId)
|
||||
return axiosApi.post('/api/images', formData, {
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data'
|
||||
}
|
||||
|
||||
@@ -527,14 +527,16 @@ const editNote = async (file) => {
|
||||
|
||||
// 图片上传
|
||||
const handleImageUpload=async (files) => {
|
||||
const promise = await uploadImage(files);
|
||||
const promise = await uploadImage(files[0]);
|
||||
if (promise.code !== 200) {
|
||||
ElMessage.error(promise.msg);
|
||||
return;
|
||||
}
|
||||
const url = promise.data;
|
||||
imageUrls.value.push(url);
|
||||
vditor.value.insertValue(`![${files[0].name}](${url})`);
|
||||
const url = promise.data.url;
|
||||
// 修正IP地址并正确拼接
|
||||
const baseUrl = "http://127.0.0.1:8084";
|
||||
imageUrls.value.push(baseUrl + url);
|
||||
vditor.value.insertValue(`![${files[0].name}](${baseUrl + url})`);
|
||||
}
|
||||
|
||||
const debouncedSave = (value) => {
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
|
||||
<script>
|
||||
import MarkdownEditor from '@/components/MarkdownEditor.vue';
|
||||
import VMdPreview from '@kangc/v-md-editor/lib/preview';
|
||||
import { ref } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import axios from 'axios';
|
||||
import {uploadImage} from "@/api/CommonApi.js";
|
||||
|
||||
export default {
|
||||
name: 'MarkdownEditor',
|
||||
@@ -85,19 +85,8 @@ export default {
|
||||
|
||||
const handleImageUpload = async (event, insertImage, files) => {
|
||||
const file = files[0];
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
formData.append('userId', userId.value);
|
||||
formData.append('markdownId', currentFileId.value);
|
||||
|
||||
try {
|
||||
const API_BASE_URL = 'http://localhost:8083';
|
||||
const response = await axios.post(`${API_BASE_URL}/api/images`, formData, {
|
||||
withCredentials: true,
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data'
|
||||
}
|
||||
});
|
||||
const response = await uploadImage(file, userId.value, currentFileId.value);
|
||||
|
||||
// 插入图片到编辑器
|
||||
insertImage({
|
||||
|
||||
Reference in New Issue
Block a user