Ошибка загрузки файла Froala Не удалось выполнить ответ при разборе любого другого файла, кроме файлов pdf, txt и doc - PullRequest
0 голосов
/ 18 октября 2018

Я болтаю с поддержкой 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'
      )
    )
  );

Надеюсь, это поможет кому-то избежать головной боли однажды

...