useFileDialog
轻松打开文件对话框。
示例
使用方法
ts
import { useFileDialog } from '@vueuse/core'
const { files, open, reset, onCancel, onChange } = useFileDialog({
accept: 'image/*', // 设置仅接受图像文件
directory: true, // 如果设置为 true,则选择目录而不是文件
})
onChange((files) => {
/** 处理文件 */
})
onCancel(() => {
/** 在取消时做一些事情 */
})
vue
<template>
<button type="button" @click="open">
选择文件
</button>
</template>
类型声明
typescript
export interface UseFileDialogOptions extends ConfigurableDocument {
/**
* @default true
*/
multiple?: boolean
/**
* @default '*'
*/
accept?: string
/**
* 选择捕获文件的输入源。
* @see [HTMLInputElement Capture](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/capture)
*/
capture?: string
/**
* 打开文件对话框时重置。
* @default false
*/
reset?: boolean
/**
* 选择目录而不是文件。
* @see [HTMLInputElement webkitdirectory](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory)
* @default false
*/
directory?: boolean
}
export interface UseFileDialogReturn {
files: Ref<FileList | null>
open: (localOptions?: Partial<UseFileDialogOptions>) => void
reset: () => void
onChange: EventHookOn<FileList | null>
onCancel: EventHookOn
}
/**
* 轻松打开文件对话框。
*
* @see https://vueuse.org/useFileDialog
* @param options
*/
export declare function useFileDialog(
options?: UseFileDialogOptions,
): UseFileDialogReturn
源码
贡献者
一纸忘忧
Anthony Fu
Anthony Fu
Andrey Yolkin
jinkaiqin
Doctorwu
huiliangShen
Sandra Rodgers
Damian Głowala
zaqvil
丶远方
1SZX1
ZHAO Jinxiang
Max
Robert Soriano
更新日志
v12.3.0
on 1/2/202559f75
- feat(toValue): deprecate toValue
from @vueuse/shared
in favor of Vue's nativev12.0.0-beta.1
on 11/21/2024v11.1.0
on 9/16/2024v10.10.0
on 5/27/2024v10.7.0
on 12/5/2023v10.6.0
on 11/9/2023v10.2.0
on 6/16/2023v10.0.0-beta.1
on 3/23/2023