删除文件路径和文件名,使用 Node 在 AWS Lambda 中保留文件名

Remove file path and file name, leaving filename in AWS Lambda using Node

我希望提取文件路径,然后是带扩展名的文件名,本质上是使用 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"

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

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)

为此,我建议使用 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);

如果我理解正确,你可以使用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