diff --git a/erpnext/accounts/doctype/bank_statement_transaction_entry/bank_statement_transaction_entry.py b/erpnext/accounts/doctype/bank_statement_transaction_entry/bank_statement_transaction_entry.py
index 7a7d7d2..46ee79c 100644
--- a/erpnext/accounts/doctype/bank_statement_transaction_entry/bank_statement_transaction_entry.py
+++ b/erpnext/accounts/doctype/bank_statement_transaction_entry/bank_statement_transaction_entry.py
@@ -405,9 +405,9 @@
 		from frappe.utils.xlsxutils import read_xlsx_file_from_attached_file
 		rows = read_xlsx_file_from_attached_file(file_id=filename)
 	elif (filename.lower().endswith("csv")):
-		from frappe.utils.file_manager import get_file_path
 		from frappe.utils.csvutils import read_csv_content
-		filepath = get_file_path(filename)
+		_file = frappe.get_doc("File", {"file_name": filename})
+		filepath = _file.get_full_path()
 		with open(filepath,'rb') as csvfile:
 			rows = read_csv_content(csvfile.read())
 	elif (filename.lower().endswith("xls")):
@@ -427,8 +427,8 @@
 	return transactions
 
 def get_rows_from_xls_file(filename):
-	from frappe.utils.file_manager import get_file_path
-	filepath = get_file_path(filename)
+	_file = frappe.get_doc("File", {"file_name": filename})
+	filepath = _file.get_full_path()
 	import xlrd
 	book = xlrd.open_workbook(filepath)
 	sheets = book.sheets()
diff --git a/erpnext/hub_node/api.py b/erpnext/hub_node/api.py
index 2356401..c236822 100644
--- a/erpnext/hub_node/api.py
+++ b/erpnext/hub_node/api.py
@@ -10,7 +10,6 @@
 from frappe import _
 from frappe.frappeclient import FrappeClient
 from frappe.desk.form.load import get_attachments
-from frappe.utils.file_manager import get_file_path
 from six import string_types
 
 current_user = frappe.session.user
diff --git a/erpnext/patches/v5_4/fix_missing_item_images.py b/erpnext/patches/v5_4/fix_missing_item_images.py
index c0a2513..c6fe578 100644
--- a/erpnext/patches/v5_4/fix_missing_item_images.py
+++ b/erpnext/patches/v5_4/fix_missing_item_images.py
@@ -2,7 +2,7 @@
 import frappe
 import os
 from frappe.utils import get_files_path
-from frappe.utils.file_manager import get_content_hash
+from frappe.core.doctype.file.file import get_content_hash
 
 def execute():
 	files_path = get_files_path()
diff --git a/erpnext/setup/setup_wizard/operations/company_setup.py b/erpnext/setup/setup_wizard/operations/company_setup.py
index 7f9795b..3f0bb14 100644
--- a/erpnext/setup/setup_wizard/operations/company_setup.py
+++ b/erpnext/setup/setup_wizard/operations/company_setup.py
@@ -5,7 +5,6 @@
 import frappe
 from frappe import _
 from frappe.utils import cstr, getdate
-from frappe.utils.file_manager import save_file
 from .default_website import website_maker
 from erpnext.accounts.doctype.account.account import RootNotEditable
 
@@ -107,10 +106,16 @@
 		attach_logo = args.get("attach_logo").split(",")
 		if len(attach_logo)==3:
 			filename, filetype, content = attach_logo
-			fileurl = save_file(filename, content, "Website Settings", "Website Settings",
-				decode=True).file_url
+			_file = frappe.get_doc({
+				"doctype": "File",
+				"file_name": filename,
+				"attached_to_doctype": "Website Settings",
+				"attached_to_name": "Website Settings",
+				"decode": True})
+			_file.save()
+			fileurl = _file.file_url
 			frappe.db.set_value("Website Settings", "Website Settings", "brand_html",
-				"<img src='{0}' style='max-width: 40px; max-height: 25px;'> {1}".format(fileurl, args.get("company_name")	))
+				"<img src='{0}' style='max-width: 40px; max-height: 25px;'> {1}".format(fileurl, args.get("company_name")))
 
 def create_website(args):
 	website_maker(args)
@@ -121,4 +126,4 @@
 		fy = cstr(start_year)
 	else:
 		fy = cstr(start_year) + '-' + cstr(start_year + 1)
-	return fy
\ No newline at end of file
+	return fy
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index 5cbdd4c..73fd30e 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -256,7 +256,7 @@
 						"file_url": self.website_image,
 						"attached_to_doctype": "Item",
 						"attached_to_name": self.name
-					}).insert()
+					}).save()
 
 				except IOError:
 					self.website_image = None
