diff --git a/frappe/core/doctype/file/file.py b/frappe/core/doctype/file/file.py
index e3d35dde19..8055cd4471 100755
--- a/frappe/core/doctype/file/file.py
+++ b/frappe/core/doctype/file/file.py
@@ -368,7 +368,7 @@ class File(Document):
if not allowed_extensions:
return
- if self.file_type not in allowed_extensions.split(","):
+ if self.file_type not in allowed_extensions.splitlines():
frappe.throw(
_("File type of {0} is not allowed").format(self.file_type), exc=FileTypeNotAllowed
)
diff --git a/frappe/core/doctype/file/test_file.py b/frappe/core/doctype/file/test_file.py
index 920d597891..42f349aef4 100644
--- a/frappe/core/doctype/file/test_file.py
+++ b/frappe/core/doctype/file/test_file.py
@@ -89,7 +89,7 @@ class TestFSRollbacks(FrappeTestCase):
class TestExtensionValidations(FrappeTestCase):
- @change_settings("System Settings", {"allowed_file_extensions": "JPG,CSV"})
+ @change_settings("System Settings", {"allowed_file_extensions": "JPG\nCSV"})
def test_allowed_extension(self):
set_request(method="POST", path="/")
file_name = content = frappe.generate_hash()
diff --git a/frappe/core/doctype/system_settings/system_settings.json b/frappe/core/doctype/system_settings/system_settings.json
index 3472e645f9..76126fd4fa 100644
--- a/frappe/core/doctype/system_settings/system_settings.json
+++ b/frappe/core/doctype/system_settings/system_settings.json
@@ -593,7 +593,7 @@
"fieldtype": "Column Break"
},
{
- "description": "Provide a comma-separated list of allowed file extensions for file uploads. If unset, all file extensions are allowed. Example: CSV, JSON, JPEG, JPG, PNG",
+ "description": "Provide a list of allowed file extensions for file uploads. Each line should contain one allowed file type. If unset, all file extensions are allowed. Example:
CSV
JPG
PNG",
"fieldname": "allowed_file_extensions",
"fieldtype": "Small Text",
"label": "Allowed File Extensions"
@@ -602,7 +602,7 @@
"icon": "fa fa-cog",
"issingle": 1,
"links": [],
- "modified": "2023-09-25 15:17:58.964082",
+ "modified": "2023-09-25 16:49:16.652874",
"modified_by": "Administrator",
"module": "Core",
"name": "System Settings",
diff --git a/frappe/core/doctype/system_settings/system_settings.py b/frappe/core/doctype/system_settings/system_settings.py
index f634f1922c..9a34ccd5b6 100644
--- a/frappe/core/doctype/system_settings/system_settings.py
+++ b/frappe/core/doctype/system_settings/system_settings.py
@@ -156,8 +156,8 @@ class SystemSettings(Document):
if not self.allowed_file_extensions:
return
- self.allowed_file_extensions = ",".join(
- ext.strip().upper() for ext in self.allowed_file_extensions.split(",")
+ self.allowed_file_extensions = "\n".join(
+ ext.strip().upper() for ext in self.allowed_file_extensions.strip().splitlines()
)
def on_update(self):
diff --git a/frappe/public/js/frappe/file_uploader/file_uploader.bundle.js b/frappe/public/js/frappe/file_uploader/file_uploader.bundle.js
index c4d35ec6e0..0e63eef469 100644
--- a/frappe/public/js/frappe/file_uploader/file_uploader.bundle.js
+++ b/frappe/public/js/frappe/file_uploader/file_uploader.bundle.js
@@ -35,7 +35,7 @@ class FileUploader {
let allowed_extensions = frappe.sys_defaults?.allowed_file_extensions;
if (allowed_extensions) {
restrictions.allowed_file_types = allowed_extensions
- .split(",")
+ .split("\n")
.map((ext) => `.${ext}`);
}
}