localFileInput
隐藏 <input type="file"> 的配置与触发,以及从 Ref/数组读取 pending 文件列表。
函数签名
typescript
interface HiddenFileInputLike {
accept: string
value: string
click(): void
setAttribute(name: string, value: string): void
removeAttribute(name: string): void
}
type TriggerHiddenFileInputOptions = {
accept?: string
multiple?: boolean
}
function pendingFilesFromMaybeRefArray(pendingFiles: unknown): File[]
function resetAndTriggerHiddenFileInputClick(
input: HiddenFileInputLike | null | undefined,
options?: TriggerHiddenFileInputOptions,
): input is HiddenFileInputLike前置依赖
| 参数名 | 类型 | 说明 |
|---|---|---|
input | HiddenFileInputLike | 页面上的隐藏 file input DOM(由调用方持有) |
pendingFiles | unknown | Vue Ref<File[]> 或已是 File[] |
参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options.accept | string | 否 | MIME / 扩展名过滤 |
options.multiple | boolean | 否 | 是否多选 |
pendingFiles | unknown | 是 | 待解析的文件列表或 Ref |
返回值
| 函数 | 类型 | 说明 |
|---|---|---|
pendingFilesFromMaybeRefArray | File[] | 解 Ref 或返回数组,否则 [] |
resetAndTriggerHiddenFileInputClick | boolean | input 存在且已 click 为 true(类型谓词) |
工作原理
resetAndTriggerHiddenFileInputClick:须在用户点击的同步栈内调用;设置 accept/multiple、清空value后click()。- 选中结果应在同一 input 的
change事件中读取。 pendingFilesFromMaybeRefArray:不 import Vue 运行时,手动读取.value,与unref行为一致。
异常
无异常抛出。