我在一个JS应用程序中有一个文件拖放区。我想要过滤掉重复的文件被拖入应用程序,但是我似乎找不到一种合适的方法来比较两个File
对象指向相同的文件。所有我能找到的是通过“名称+文件大小+修改日期”组合进行比较,但它并不100%可靠,因为路径不会在name
属性中显示。
我是否错过了某种方法?
我在一个JS应用程序中有一个文件拖放区。我想要过滤掉重复的文件被拖入应用程序,但是我似乎找不到一种合适的方法来比较两个File
对象指向相同的文件。所有我能找到的是通过“名称+文件大小+修改日期”组合进行比较,但它并不100%可靠,因为路径不会在name
属性中显示。
我是否错过了某种方法?
===
比较File
对象,当你选择两个不同的<input type="file">
时,也会失败。我认为另一种方法是在你已经完成的基础上使用FileReader
来比较文件内容。但这将非常耗费时间。"最初的回答"// util
import blobCompare from "blob-compare";
export const isFileEqual = async (file1, file2) => {
return new Promise((resolve, reject) => {
blobCompare.isEqual(file1, file2).then((result) => {
resolve(result); // boolean
}).catch(() => resolve(false));
});
};
// usage
const file1, file2; // typeof File
if (await isFileEqual(file1, file2)) {
// do something
}