如何使用 React 创建 Select 目录?
How to make Select Directory using React?
我需要将文件夹中的所有文件上传到服务器。
我正在尝试实现 Select 目录 window,而不是 Select 文件。
正常方式如:
<input type="file" webkitdirectory directory/>
对我不起作用,显示 Select 文件 window。
但是当我用这个输入标签创建空的常规 html 文件时,它工作正常。
有人知道如何使用 React 实现解决方案吗?
谢谢!
尝试bheptinh。
<input directory="" webkitdirectory="" type="file" />
在带有 Typescript 的 React 17 中,如果您使用 useRef Hook,最好的办法是扩展 React 的 HTMLAttributes(在您输入的同一文件中),然后简单地添加目录输入标签中的 webkitdirectory 属性为
import * as React from "react";
export const ImportForm: React.FunctionComponent<FormProps> = (props) => {
const folderInput= React.useRef(null);
return (
<>
<div className="form-group row">
<div className="col-lg-6">
<label>Select Folder</label>
</div>
<div className="col-lg-6">
<input
type="file"
directory=""
webkitdirectory=""
className="form-control"
ref={folderInput}
/>
</div>
</div>
</>)
};
declare module 'react' {
interface HTMLAttributes<T> extends AriaAttributes, DOMAttributes<T> {
// extends React's HTMLAttributes
directory?: string; // remember to make these attributes optional....
webkitdirectory?: string;
}
}
我需要将文件夹中的所有文件上传到服务器。 我正在尝试实现 Select 目录 window,而不是 Select 文件。
正常方式如:
<input type="file" webkitdirectory directory/>
对我不起作用,显示 Select 文件 window。
但是当我用这个输入标签创建空的常规 html 文件时,它工作正常。 有人知道如何使用 React 实现解决方案吗?
谢谢!
尝试bheptinh。
<input directory="" webkitdirectory="" type="file" />
在带有 Typescript 的 React 17 中,如果您使用 useRef Hook,最好的办法是扩展 React 的 HTMLAttributes(在您输入的同一文件中),然后简单地添加目录输入标签中的 webkitdirectory 属性为
import * as React from "react";
export const ImportForm: React.FunctionComponent<FormProps> = (props) => {
const folderInput= React.useRef(null);
return (
<>
<div className="form-group row">
<div className="col-lg-6">
<label>Select Folder</label>
</div>
<div className="col-lg-6">
<input
type="file"
directory=""
webkitdirectory=""
className="form-control"
ref={folderInput}
/>
</div>
</div>
</>)
};
declare module 'react' {
interface HTMLAttributes<T> extends AriaAttributes, DOMAttributes<T> {
// extends React's HTMLAttributes
directory?: string; // remember to make these attributes optional....
webkitdirectory?: string;
}
}