| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | /** * 获取文件名和后缀 * @param {String} name */export const get_file_ext = (name) => {  const last_len = name.lastIndexOf('.');  const len = name.length;  return {    name: name.substring(0, last_len),    ext: name.substring(last_len + 1, len),  };};/** * 获取扩展名 * @param {Array} fileExtname */export const get_extname = (fileExtname) => {  if (!Array.isArray(fileExtname)) {    let extname = fileExtname.replace(/(\[|\])/g, '');    return extname.split(',');  } else {    return fileExtname;  }  return [];};/** * 获取文件和检测是否可选 */export const get_files_and_is_max = (res, _extname) => {  let filePaths = [];  let files = [];  if (!_extname || _extname.length === 0) {    return {      filePaths,      files,    };  }  res.tempFiles.forEach((v) => {    let fileFullName = get_file_ext(v.name);    const extname = fileFullName.ext.toLowerCase();    if (_extname.indexOf(extname) !== -1) {      files.push(v);      filePaths.push(v.path);    }  });  if (files.length !== res.tempFiles.length) {    uni.showToast({      title: `当前选择了${res.tempFiles.length}个文件 ,${        res.tempFiles.length - files.length      } 个文件格式不正确`,      icon: 'none',      duration: 5000,    });  }  return {    filePaths,    files,  };};/** * 获取图片信息 * @param {Object} filepath */export const get_file_info = (filepath) => {  return new Promise((resolve, reject) => {    uni.getImageInfo({      src: filepath,      success(res) {        resolve(res);      },      fail(err) {        reject(err);      },    });  });};/** * 获取封装数据 */export const get_file_data = async (files, type = 'image') => {  // 最终需要上传数据库的数据  let fileFullName = get_file_ext(files.name);  const extname = fileFullName.ext.toLowerCase();  let filedata = {    name: files.name,    uuid: files.uuid,    extname: extname || '',    cloudPath: files.cloudPath,    fileType: files.fileType,    url: files.path || files.path,    size: files.size, //单位是字节    image: {},    path: files.path,    video: {},  };  if (type === 'image') {    const imageinfo = await get_file_info(files.path);    delete filedata.video;    filedata.image.width = imageinfo.width;    filedata.image.height = imageinfo.height;    filedata.image.location = imageinfo.path;  } else {    delete filedata.image;  }  return filedata;};
 |