From a941f5ae1239c919b7a3ba95ffb4f4304bc978a1 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Mon, 18 Aug 2025 14:34:36 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E4=B8=8A=E4=BC=A0=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E6=96=B9=E6=B3=95=E5=A2=9E=E5=8A=A0=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Editor/Editor.razor.cs | 10 ++++++---- .../Components/Editor/Editor.razor.js | 11 +++++------ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/components/BootstrapBlazor.SummerNote/Components/Editor/Editor.razor.cs b/src/components/BootstrapBlazor.SummerNote/Components/Editor/Editor.razor.cs index afc42478..b8691a94 100644 --- a/src/components/BootstrapBlazor.SummerNote/Components/Editor/Editor.razor.cs +++ b/src/components/BootstrapBlazor.SummerNote/Components/Editor/Editor.razor.cs @@ -64,7 +64,7 @@ public partial class Editor /// 获得/设置 Editor 组件内上传文件时回调此方法 /// [Parameter] - public Func? OnFileUpload { get; set; } + public Func>? OnFileUpload { get; set; } private bool _lastShowSubmit = true; @@ -270,14 +270,16 @@ public async Task ClickPluginItem(string pluginItemName) /// /// [JSInvokable] - public async Task ImageUpload(string name, string contentType, long size, IJSStreamReference stream) + public async Task ImageUpload(string name, string contentType, long size, IJSStreamReference stream) { - var data = await stream.OpenReadStreamAsync(size); + string? ret = null; + await using var data = await stream.OpenReadStreamAsync(size); var file = new EditorUploadFile(name, contentType, size, data); if (OnFileUpload != null) { - await OnFileUpload(file); + ret = await OnFileUpload(file); } + return ret ?? ""; } /// diff --git a/src/components/BootstrapBlazor.SummerNote/Components/Editor/Editor.razor.js b/src/components/BootstrapBlazor.SummerNote/Components/Editor/Editor.razor.js index 0a0c4cb6..3805cf48 100644 --- a/src/components/BootstrapBlazor.SummerNote/Components/Editor/Editor.razor.js +++ b/src/components/BootstrapBlazor.SummerNote/Components/Editor/Editor.razor.js @@ -51,17 +51,16 @@ export async function init(id, invoker, methodGetPluginAttrs, methodClickPluginI editor.files = files for (let i = 0; i < files.length; i++) { const file = files[i]; - const image = createImage(file); - editor.$editor.summernote('insertNode', image); - const buffer = await file.arrayBuffer(); const stream = DotNet.createJSStreamReference(buffer); - await editor.invoker.invokeMethodAsync('ImageUpload', + const url = await editor.invoker.invokeMethodAsync('ImageUpload', file.name, file.type || 'application/octet-stream', file.size, stream ) + const image = createImage(file, url); + editor.$editor.summernote('insertNode', image); } } } @@ -220,9 +219,9 @@ export function dispose(id) { } } -const createImage = file => { +const createImage = (file, url) => { const element = document.createElement('img'); - element.src = URL.createObjectURL(file); + element.src = url || URL.createObjectURL(file); return element; } From f4b6ee68c50404d166170c3de68d114e83ab4e4e Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Mon, 18 Aug 2025 14:34:46 +0800 Subject: [PATCH 2/2] chore: bump version 9.0.6 --- .../BootstrapBlazor.SummerNote.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/BootstrapBlazor.SummerNote/BootstrapBlazor.SummerNote.csproj b/src/components/BootstrapBlazor.SummerNote/BootstrapBlazor.SummerNote.csproj index bd3df802..365eadf5 100644 --- a/src/components/BootstrapBlazor.SummerNote/BootstrapBlazor.SummerNote.csproj +++ b/src/components/BootstrapBlazor.SummerNote/BootstrapBlazor.SummerNote.csproj @@ -1,7 +1,7 @@ - 9.0.5 + 9.0.6