Я болтаю с поддержкой Froala, и они не могут мне помочь, поэтому я пытаюсь решить эту проблему.
Проблема, с которой я сталкиваюсь, заключается в том, что при загрузке файла с помощью Froala я могу загрузить txt,DOC и PDF-файлы без проблем.Когда я пытаюсь загрузить любой другой тип файла (word (docx), excel, xml ...), я получаю сообщение об ошибке
Parsing response failed.
Хорошо, сначала позвольте мне указать, что у меня задан параметр, которыйдолжен позволять мне загружать файлы любого типа
fileAllowedTypes: ['*'],
Я пробовал загружать очень маленькие файлы, поэтому я знаю, что это не связано с размером файла.
Я провел один тестчто мне показалось интересным .Я открыл блокнот и создал текстовый файл, в котором ничего нет, поэтому он пустой.Когда я пытаюсь загрузить этот файл, он возвращается с той же ошибкой.Parsing response failed
Если я открою тот же файл и вставлю в него слово «test», сохраню его и попробую загрузить его, он будет работать нормально.
Не уверен, что это может быть связано, но когда я нажимаюв редакторе Froala (буквально просто щелкните в нем) консоль сообщает
froala_editor.pkgd.min.js:7 Uncaught TypeError: Cannot read property 'indexOf' of null
at s.r (froala_editor.pkgd.min.js:7)
at u (froala_editor.pkgd.min.js:7)
at HTMLDivElement.<anonymous> (froala_editor.pkgd.min.js:7)
Также, когда я получаю Parsing response failed.
при загрузке файлов, которые не работают, консоль не сообщает об ошибках
Я такжепроверил мои журналы apache и error_log
также не сообщает об ошибках.
У меня нет .htaccess
файла в любом месте
Любые идеи будут полезны, чтобы указать мне правильное направление
JQUERY
$(document).ready( function() {
$(function() {
$('#description').froalaEditor({
toolbarButtons: ['insertImage', 'insertFile','insertLink', 'formatBlock', 'fontSize', 'color', 'bold', 'italic', 'underline', 'strikeThrough', 'outdent', 'indent', 'align', 'formatOL', 'formatUL', 'clearFormatting','html'],
key: '****************************************************',
iconsTemplate: 'font_awesome_5',
imageUploadURL: '/path/upload_image.php',
fileUploadURL: '/path/upload_file.php',
imageUploadMethod: 'POST',
fileUploadMethod: 'POST',
imageMaxSize: 5 * 1024 * 1024,
fileMaxSize: 10000 * 1024 * 1024,
imageAllowedTypes: ['jpeg', 'jpg', 'png', 'gif'],
fileAllowedTypes: ['*'],
imagePaste: true,
height: 262,
quickInsertTags: null
})
.on('froalaEditor.image.removed', function (e, editor, $img) {
$.ajax({
method: "POST",
url: "/path/delete_image.php",
data: {src: $img.attr('src')}
})
})
.on('froalaEditor.file.unlink', function (e, editor, $link) {
$.ajax({
method: "POST",
url: "/path/delete_file.php",
data: {src: String($link)}
})
});
});
})
решено
Итак, наконец, после недели, когда техническая поддержка не смогла мне помочь, я наконец решилпросмотрите их SDK с мелким зубом и расческой (почему мне понадобилось так много времени, чтобы решить, что я понятия не имею), и я наконец понял это.
В их документах о fileAllowedTypes Параметр по умолчанию ['*']
, который для меня из-за звездочкиks означает Everything
, ну, это не
В их SDK есть файл с именем File.php
, который обрабатывает все загрузки файлов, и у них есть
public static $defaultUploadOptions = array(
'fieldname' => 'file',
'validation' => array(
'allowedExts' => array('txt', 'pdf', 'doc'), <----this is where the problem is
'allowedMimeTypes' => array('text/plain', 'application/msword', 'application/x-pdf', 'application/pdf')
)
);
Их "по умолчанию "только" TXT "," PDF "и" DOC ".Все, что вам нужно сделать, это добавить расширения и MimeTypes, которые вы хотите, к wysiwyg-editor-php-sdk-master/lib/FroalaEditor/File.php
и BAM, он будет работать.Вот моя новая версия файла File.php
в SDK, который я отредактировал, разрешив все офисные документы.
class File {
public static $defaultUploadOptions = array(
'fieldname' => 'file',
'validation' => array(
'allowedExts' => array('txt', 'pdf', 'doc', 'docx', 'docm', 'dot', 'dotx', 'dotm', 'csv', 'xls', 'xlsx', 'xlt', 'xltx', 'xla', 'xlsm', 'xltm', 'xlam', 'xlsb', 'ppt', 'pot', 'pps', 'ppa', 'pptx', 'potx', 'ppsx', 'ppam', 'pptm', 'potm', 'ppsm'),
'allowedMimeTypes' => array(
'text/plain',
'application/msword',
'application/x-pdf',
'application/pdf',
'application/vnd.ms-word.document.macroEnabled.12',
'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/vnd.ms-word.template.macroEnabled.12',
'application/vnd.ms-excel',
'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
'application/vnd.ms-excel.sheet.macroEnabled.12',
'application/vnd.ms-excel.template.macroEnabled.12',
'application/vnd.ms-excel.addin.macroEnabled.12',
'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
'application/vnd.ms-powerpoint',
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
'application/vnd.openxmlformats-officedocument.presentationml.template',
'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
'application/vnd.ms-powerpoint.addin.macroEnabled.12',
'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
'application/vnd.ms-powerpoint.template.macroEnabled.12',
'application/vnd.ms-powerpoint.slideshow.macroEnabled.12'
)
)
);
Надеюсь, это поможет кому-то избежать головной боли однажды