文件检索与图标检索
通过引入antd文件上传组件上传文件(这里比较简单我就不贴代码了)
引入
import crypto from 'crypto';
//crypto提供了各种加密、解密、哈希和随机数生成等功能
//图标搜索
const iconSearchOnloadCallback = (result: any) => {
//result:图标基本信息
// buffer处理
const iconBuffer = Buffer.from(result.target.result);
// base64
const base64 = iconBuffer.toString('base64');
// 计算mmh3
const mmh3 = MMH3.x86.hash32(base64Format(base64)) | 0;
// 创建md5实例
const fsHash = crypto.createHash('md5');
// 对文件进行hash处理
fsHash.update(iconBuffer);
// 以16进制输出
const hash = fsHash.digest('hex');
const queryStr = `iconhash:"${hash}" iconhash:"${mmh3}"`;
getSearchInputData(queryStr);
// 发起请求
handleSearchRes(queryStr);
};
//文件检索
const filesSearchOnloadCallback = (result: any) => {
//result 上传文件后文件对象基本信息
// buffer处理
const filesBuffer = Buffer.from(result.target.result);
// 创建md5实例
const fsHash = crypto.createHash('md5');
// 对文件进行hash处理
fsHash.update(filesBuffer);
// 以16进制输出
const hash = fsHash.digest('hex');
const queryStr = `filehash:"${hash}"`;
getSearchInputData(queryStr);
// 发起请求
handleSearchRes(queryStr);
};