This commit is contained in:
liudonghua 2024-06-13 01:49:48 +00:00 committed by GitHub
commit c4d33b5c62
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 4 deletions

View File

@ -76,10 +76,28 @@ async function onUpload(file: File) {
fileInput.value = file;
}
}
function onPaste(event: ClipboardEvent) {
if (event.clipboardData) {
const { items } = event.clipboardData;
for (const item of items) {
if (item.kind === 'file') {
fileInput.value = item.getAsFile()!;
}
else if (item.kind === 'string' && item.type.match('^text/plain')) {
item.getAsString(s => base64Input.value = s);
}
else {
// eslint-disable-next-line no-console
console.info('Unsupport clipboardData', item);
}
}
}
}
</script>
<template>
<c-card title="Base64 to file">
<c-card title="Base64 to file" @paste="onPaste">
<n-grid cols="3" x-gap="12">
<n-gi span="2">
<c-input-text
@ -121,8 +139,8 @@ async function onUpload(file: File) {
</div>
</c-card>
<c-card title="File to base64">
<c-file-upload title="Drag and drop a file here, or click to select a file" @file-upload="onUpload" />
<c-card title="File to base64" @paste="onPaste">
<c-file-upload title="Drag and drop a file here, Focus this card and paste a file here, or click to select a file" @file-upload="onUpload" />
<c-input-text :value="fileBase64" multiline readonly placeholder="File in base64 will be here" rows="5" my-2 />
<div flex justify-center>

View File

@ -3,7 +3,7 @@
"include": ["env.d.ts", "src/**/*", "src/**/*.vue", "**/*.d.ts", "node_modules/vite-plugin-pwa/client.d.ts"],
"exclude": ["src/**/__tests__/*"],
"compilerOptions": {
"lib": ["ES2022"],
"lib": ["ES2022", "DOM.Iterable"],
"target": "es2022",
"module": "es2022",
"moduleResolution": "Node",