From a24c3bea052e98353e6a6eb35baaf67df71fc896 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Sat, 17 Jul 2021 09:57:55 +0200 Subject: [PATCH] Skip url parameters when determining file name or extension. --- source/io/fileutils.js | 7 ++++++- test/tests/io_test.js | 18 +++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/source/io/fileutils.js b/source/io/fileutils.js index 3bc01fb..31eeb9b 100644 --- a/source/io/fileutils.js +++ b/source/io/fileutils.js @@ -20,11 +20,16 @@ OV.GetFileName = function (filePath) if (firstSeparator !== -1) { fileName = filePath.substr (firstSeparator + 1); } + let firstParamIndex = fileName.indexOf ('?'); + if (firstParamIndex !== -1) { + fileName = fileName.substr (0, firstParamIndex); + } return decodeURI (fileName); }; -OV.GetFileExtension = function (fileName) +OV.GetFileExtension = function (filePath) { + let fileName = OV.GetFileName (filePath); let firstPoint = fileName.lastIndexOf ('.'); if (firstPoint === -1) { return ''; diff --git a/test/tests/io_test.js b/test/tests/io_test.js index cbdd29a..5e2d580 100644 --- a/test/tests/io_test.js +++ b/test/tests/io_test.js @@ -97,5 +97,21 @@ describe ('IO Test', function () { let str2 = OV.ArrayBufferToUtf8String (buffer); assert.strictEqual (str, str2); assert.strictEqual (str.length, str2.length); - }); + }); + + it ('File Name', function () { + assert.strictEqual (OV.GetFileName ('file.ext'), 'file.ext'); + assert.strictEqual (OV.GetFileName ('folder1/folder2/file.ext'), 'file.ext'); + assert.strictEqual (OV.GetFileName ('folder1\\folder2\\file.ext'), 'file.ext'); + assert.strictEqual (OV.GetFileName ('https://example.com/file.ext'), 'file.ext'); + assert.strictEqual (OV.GetFileName ('https://example.com/file.ext?param1=param2'), 'file.ext'); + }); + + it ('File Extension', function () { + assert.strictEqual (OV.GetFileExtension ('file.ext'), 'ext'); + assert.strictEqual (OV.GetFileExtension ('folder1/folder2/file.ext'), 'ext'); + assert.strictEqual (OV.GetFileExtension ('folder1\\folder2\\file.ext'), 'ext'); + assert.strictEqual (OV.GetFileExtension ('https://example.com/file.ext'), 'ext'); + assert.strictEqual (OV.GetFileExtension ('https://example.com/file.ext?param1=param2'), 'ext'); + }); });