useFileDialog
轻松打开文件对话框。
演示
用法
ts
import { useFileDialog } from '@vueuse/core'
const { files, open, reset, onCancel, onChange } = useFileDialog({
accept: 'image/*', // Set to accept only image files
directory: true, // Select directories instead of files if set true
})
onChange((files) => {
/** do something with files */
})
onCancel(() => {
/** do something on cancel */
})
vue
<template>
<button type="button" @click="open">
Choose file
</button>
</template>
类型声明
显示类型声明
typescript
export interface UseFileDialogOptions extends ConfigurableDocument {
/**
* @default true
*/
multiple?: boolean
/**
* @default '*'
*/
accept?: string
/**
* Select the input source for the capture file.
* @see [HTMLInputElement Capture](https://mdn.org.cn/en-US/docs/Web/HTML/Attributes/capture)
*/
capture?: string
/**
* Reset when open file dialog.
* @default false
*/
reset?: boolean
/**
* Select directories instead of files.
* @see [HTMLInputElement webkitdirectory](https://mdn.org.cn/en-US/docs/Web/API/HTMLInputElement/webkitdirectory)
* @default false
*/
directory?: boolean
/**
* Initial files to set.
* @default null
*/
initialFiles?: Array<File> | FileList
}
export interface UseFileDialogReturn {
files: Ref<FileList | null>
open: (localOptions?: Partial<UseFileDialogOptions>) => void
reset: () => void
onChange: EventHookOn<FileList | null>
onCancel: EventHookOn
}
/**
* Open file dialog with ease.
*
* @see https://vueuse.org.cn/useFileDialog
* @param options
*/
export declare function useFileDialog(
options?: UseFileDialogOptions,
): UseFileDialogReturn
源文件
贡献者
更新日志
v12.5.0
于 2025/1/22v12.3.0
于 2025/1/259f75
- feat(toValue): 弃用 @vueuse/shared
中的 toValue
,转而使用 Vue 原生方法v12.0.0-beta.1
于 2024/11/21v11.1.0
于 2024/9/16v10.10.0
于 2024/5/27v10.7.0
于 2023/12/5v10.6.0
于 2023/11/9v10.2.0
于 2023/6/16v10.0.0-beta.1
于 2023/3/23