react 项目中得文件检索 ---前端

77 阅读1分钟

文件检索与图标检索

通过引入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);
  };