Загрузка изображения в Editorjs
Я пытаюсь сделать редактор статей используя Editor.js, но встречаюсь с проблемой на загрузке изображений пользователем. Сам инструмент добавляется, но когда я пытаюсь загрузить изображение вылетает ошибка: "Couldn't upload image. Try another." Картинки даже кидаются в папку на beget, но в консоли выскакивает ошибка: "Image Tool: uploading failed because of incorrect response: "\nFatal error: Uncaught TypeError: Cannot access offset of type string on string in /public_html/News/SS.php:22\nStack trace:\n#0 {main}\n thrown in /public_html/News/SS.php on line 22\n" "
<?php
if (isset($_FILES['image']) && $_FILES['image']['error'] === UPLOAD_ERR_OK) {
$file = $_FILES['image'];
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
$fileSize = $file['size'];
$fileError = $file['error'];
$fileType = $file['type'];
$uploadDir = 'public_html/News/uploads/';
$uploadFile = $uploadDir . basename($fileName);
if (move_uploaded_file($fileTmpName, $uploadFile)) {
$imageUrl = 'http://' . $_SERVER['HTTP_HOST'] . '/' . $uploadFile;
$response = [
'url' => $imageUrl,
'name' => $fileName,
'size' => $fileSize,
'type' => $fileType
];
echo json_encode($response);
} else {
echo 'Ошибка при загрузке файла.';
}
} else {
echo 'Файл не был загружен.';
}
Код JavaScript
const editor = new EditorJS({
tools: {
header: {
class: Header,
inlineToolbar: ['link']
},
embed: {
class: Embed,
inlineToolbar: false,
config: {
services: {
youtube: true
}
}
},
list: {
class: List,
inlineToolbar: true,
config: {
defaultStyle: 'unordered'
}
},
quote: {
class: Quote,
inlineToolbar: true,
shortcut: 'CMD+SHIFT+O',
config: {
quotePlaceholder: 'Enter a quote',
captionPlaceholder: 'Quote\'s author',
},
},
imageSi: SimpleImage,
image: {
class: ImageTool,
config: {
endpoints: {
byFile: 'http://n92576ob.beget.tech/News/SS.php', // Your backend file uploader endpoint
}
},
},
},
holder: 'editorjs'
});