mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-17 14:55:23 +00:00
refac/enh: file upload with paste
This commit is contained in:
parent
20b6892d9b
commit
8807ac8cac
2 changed files with 19 additions and 1 deletions
|
|
@ -1279,6 +1279,13 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
reader.readAsDataURL(blob);
|
reader.readAsDataURL(blob);
|
||||||
|
} else if (item?.kind === 'file') {
|
||||||
|
const file = item.getAsFile();
|
||||||
|
if (file) {
|
||||||
|
const _files = [file];
|
||||||
|
await inputFilesHandler(_files);
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
} else if (item.type === 'text/plain') {
|
} else if (item.type === 'text/plain') {
|
||||||
if (($settings?.largeTextAsFile ?? false) && !shiftKey) {
|
if (($settings?.largeTextAsFile ?? false) && !shiftKey) {
|
||||||
const text = clipboardData.getData('text/plain');
|
const text = clipboardData.getData('text/plain');
|
||||||
|
|
@ -1504,6 +1511,7 @@
|
||||||
|
|
||||||
if (clipboardData && clipboardData.items) {
|
if (clipboardData && clipboardData.items) {
|
||||||
for (const item of clipboardData.items) {
|
for (const item of clipboardData.items) {
|
||||||
|
console.log(item);
|
||||||
if (item.type.indexOf('image') !== -1) {
|
if (item.type.indexOf('image') !== -1) {
|
||||||
const blob = item.getAsFile();
|
const blob = item.getAsFile();
|
||||||
const reader = new FileReader();
|
const reader = new FileReader();
|
||||||
|
|
@ -1519,6 +1527,13 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
reader.readAsDataURL(blob);
|
reader.readAsDataURL(blob);
|
||||||
|
} else if (item?.kind === 'file') {
|
||||||
|
const file = item.getAsFile();
|
||||||
|
if (file) {
|
||||||
|
const _files = [file];
|
||||||
|
await inputFilesHandler(_files);
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
} else if (item.type === 'text/plain') {
|
} else if (item.type === 'text/plain') {
|
||||||
if (($settings?.largeTextAsFile ?? false) && !shiftKey) {
|
if (($settings?.largeTextAsFile ?? false) && !shiftKey) {
|
||||||
const text = clipboardData.getData('text/plain');
|
const text = clipboardData.getData('text/plain');
|
||||||
|
|
|
||||||
|
|
@ -1077,7 +1077,10 @@
|
||||||
const hasImageItem = Array.from(event.clipboardData.items).some((item) =>
|
const hasImageItem = Array.from(event.clipboardData.items).some((item) =>
|
||||||
item.type.startsWith('image/')
|
item.type.startsWith('image/')
|
||||||
);
|
);
|
||||||
if (hasImageFile || hasImageItem) {
|
|
||||||
|
const hasFile = Array.from(event.clipboardData.files).length > 0;
|
||||||
|
|
||||||
|
if (hasImageFile || hasImageItem || hasFile) {
|
||||||
eventDispatch('paste', { event });
|
eventDispatch('paste', { event });
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue