javascript - 相当于react中的directory、mozdirectory和webkitdirectory?
问题描述
我想使用 react 将目录上传到我的服务器,我尝试使用目录、mozdirectory 和 webKitDirectory 属性,但它们不起作用,我尝试运行下面的代码,但不幸的是,它不起作用。
function UploadDirectory() {
function dirUploadAttr(input) {
input.setAttribute("webkit-directory", "");
input.setAttribute("moz-directory", "");
}
return (
<input type="file" ref={dirUploadAttr} />
)
}
如何在输入标签中获取目录?什么是有效且简单的方法?
解决方案
老实说,我和我工作过的公司的一名团队成员已经研究这个问题好几个星期了。问题是我们正在为其制作应用程序的用户想要一种从目录中删除文件并上传的方法,而无需双击目录本身来获取文件(例如,单击上传中包含文件的文件夹菜单并选择上传以上传整个文件夹)。好吧,在挖掘和挖掘之后,我们联系了多个团队以找到解决方案,他们告诉我们:“React 不支持 webkitdirectory(或类似的东西),这是由于 Windows 的限制。” 我相信它可以在 .NET 时代完成,但 React 的特定 <input)> html 标记不支持 webkitdirectory 作为属性。
import Dropzone from "react-dropzone-uploader";
import { getDroppedOrSelectedFiles } from './Html5FileSelector'
const getFilesFromEvent = (e:any) => {
return new Promise<any>(resolve => {
getDroppedOrSelectedFiles(e).then(chosenFiles => {
resolve(chosenFiles.map((f:any) => f.fileObject))
})
})
};
const handleSubmit = (files:any) => { this.fileChange(files); }
<Dropzone accept=".txt" getFilesFromEvent={getFilesFromEvent} onSubmit=
{handleSubmit} />
请注意,您必须从 Html5FileSelector 实现一个功能,更多信息可以从展示 dropzone 上传器的现场示例中获得,这也是节点模块官方文档的链接: https://react-dropzone-uploader。 js.org/docs/examples#!/Custom%20Input,%20Directory%20Drag%20and%20Drop
推荐阅读
- javascript - Openlayers 和 geoserver - 没有这样的属性:bbox
- php - 引导下载按钮在新窗口中打开图像而不是下载
- c - 如何在两个 Linux 模块之间共享代码?
- lisp - 在 Common LISP 中更改字节宽度中流
- php - 我想将会话数据发送到 laravel 中的刀片
- azure - Azure 数据工厂:复杂 (JSON) 状态管理
- python - Python TypeError: len() of unsized object
- reactjs - React:如何在包装的组件中获取 HOC 的状态?我可以举一个简单的例子来说明 HOC 是如何传递这样一个值的吗?
- sql - Postgres中以毫秒为单位的下采样时间戳
- hibernate - Spring Boot 没有从 data.sql 文件中插入数据?