FilePond
Preview
画像(accept=image/*)
非画像(accept=application/pdf)
拒否理由(max-files / max-size / accept)
(イベントログ)
HTML
<tw-file-pond max-files="3" max-size="1048576" accept="image/*"></tw-file-pond>
<tw-file-pond max-files="2" accept="application/pdf"></tw-file-pond>
<tw-file-pond
id="pond-reject"
max-files="1"
max-size="1024"
accept="image/png"
></tw-file-pond>
<pre id="pond-event-log"><code>(イベントログ)</code></pre>
import "@b4moss/the-wheels";
const log = document.getElementById("pond-event-log")?.querySelector("code");
const pond = document.getElementById("pond-reject");
const append = (line) => {
if (!log) return;
const prev = log.textContent === "(イベントログ)" ? "" : `${log.textContent}\n`;
log.textContent = `${prev}${line}`;
};
pond?.addEventListener("tw-add", (event) => {
append(`add: ${event.detail.file.name}`);
});
pond?.addEventListener("tw-remove", (event) => {
append(`remove: ${event.detail.file.name}`);
});
pond?.addEventListener("tw-reject", (event) => {
append(`reject: ${event.detail.file.name} (${event.detail.reason})`);
});
import "@b4moss/the-wheels";
import type { TwFilePond } from "@b4moss/the-wheels";
const log = document.getElementById("pond-event-log")?.querySelector("code");
const pond = document.getElementById("pond-reject") as TwFilePond | null;
const append = (line: string) => {
if (!log) return;
const prev = log.textContent === "(イベントログ)" ? "" : `${log.textContent}\n`;
log.textContent = `${prev}${line}`;
};
pond?.addEventListener("tw-add", ((event: CustomEvent<{ file: File }>) => {
append(`add: ${event.detail.file.name}`);
}) as EventListener);
pond?.addEventListener("tw-remove", ((event: CustomEvent<{ file: File }>) => {
append(`remove: ${event.detail.file.name}`);
}) as EventListener);
pond?.addEventListener("tw-reject", ((
event: CustomEvent<{ file: File; reason: string }>
) => {
append(`reject: ${event.detail.file.name} (${event.detail.reason})`);
}) as EventListener);