【问题标题】:Remove file path and file name, leaving filename in AWS Lambda using Node删除文件路径和文件名,使用 Node 将文件名留在 AWS Lambda 中
【发布时间】:2019-06-26 00:18:27
【问题描述】:

我希望提取文件路径,然后是带扩展名的文件名,本质上让我使用 Node.js 从 AWS Lambda 中的事件对象中提取文件名和文件

这是一个示例文件路径

/home/mysite/public_html/services/wp-content/uploads/woocommerce_uploads/wcj_uploads/input_fields_uploads/myfilename.docx
var docfilename = event.line_items[0].meta_data[0].value.tmp_name;
var docextension = event.line_items[0].meta_data[0].value.tmp_name;

console.log(event.line_items[0].meta_data[0].value.tmp_name);

所需的输出在第一个实例中只是“myfilename”,在第二个实例中是“myfilename.docx”

【问题讨论】:

标签: javascript node.js regex amazon-web-services console.log


【解决方案1】:

如果我理解正确,你可以使用 Node.js 内部的path 模块:

'use strict';

const path = require('path');

const fullPath = '/home/mysite/public_html/services/wp-content/uploads/woocommerce_uploads/wcj_uploads/input_fields_uploads/myfilename.docx';

const extension = path.extname(fullPath);
const justFileName = path.basename(fullPath, extension);
const fileNameWithExtension = path.basename(fullPath);

console.log(justFileName);
console.log(fileNameWithExtension);
myfilename
myfilename.docx

【讨论】:

  • 这看起来很棒。将来可能会使用其他文件扩展名。有什么办法可以在 justFileName 扩展名中使用 txt、rtf 等?
  • 您可以使用path.extname 来确定文件的扩展名,然后path.basename 作为回答者显示,如果需要,只获取基本文件名。
  • 是的,我已经更新了示例。您也可以查看nodejs.org/api/path.html了解更多详情。
【解决方案2】:

为了实现这一点,我建议像这样使用the split method

var filePath = "/home/mysite/public_html/services/wp-content/uploads/woocommerce_uploads/wcj_uploads/input_fields_uploads/myfilename.docx";

let split1 = filePath.split("/"); // splits at the / character -> variable is an array containing all folders and the "myfilename.docx"

let split2 = split1[split1.length - 1]; // only takes the part after the last / -> variable is equal to "myfilename.docx"

let done = split2.split(".")[0]; // only takes the part before the . -> variable is equal to "myfilename"

console.log(done);

【讨论】:

    【解决方案3】:

    您可以先用/ 拆分,然后再用. 拆分最后一个元素并取出第一个元素。

    let filePath = `/home/mysite/public_html/services/wp-content/uploads/woocommerce_uploads/wcj_uploads/input_fields_uploads/myfilename.docx`
    
    let splited = filePath.split('/').pop().split('.')[0]
    
    console.log(splited)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-18
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-04
      • 2015-08-17
      相关资源
      最近更新 更多