[英]Does html input support drag & drop from zip folder?
我在带有 HTML 输入框的 React 组件中实现了拖放功能。 它运行完美,它接收文件并将其上传到 Amazon S3,检查文件类型是否与 props 指定的兼容。
从 ZIP 文件中拖动文件时会出现问题。 我 console.loggued 结果文件 object,与从桌面文件夹拖动的文件的唯一区别是大小(来自 ZIP 文件 => 大小 = 0)。
当我拖动文件时,有没有办法识别它来自 ZIP 文件,以便它等到文件完成上传到输入? 另外,如何检查文件是否已完成上传?
接收文件并检查它的 function:
export default function(e, onUpload, acceptedTypes) {
e.stopPropagation()
e.preventDefault()
if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
const file = e.dataTransfer.files[0]
if (isAcceptedType(file, acceptedTypes)) {
onUpload(file)
}
}
}
我一开始忘了提到,当我在输入中放置一个文件时,它会立即“上传”到 S3,但大小为 0(因为它来自 ZIP 文件),所以该站点将其识别为一个文件,但是当我正在尝试查看它说错误的内容。
谢谢!
我最终采用了这种解决方法,因为我还没有找到实际的解决方案:
const timeTolerance = 10;
const now = new Date().getTime();
const isAutoGenerated = now - file.lastModified < timeTolerance;
if (file.size === 0 && isAutoGenerated) {
return false; // invalid file
}
因为lastModified
非常接近当前时间,所以它很可能是自动生成的,结合 0 的大小,我将其识别为占位符文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.