Froala文件上传错误当上传除pdf,txt和doc文件以外的任何其他文件时,解析响应失败

时间:2018-10-18 18:10:02

标签: javascript jquery froala

我一直在和Froala支持人员聊天,他们不能帮我,所以我正在努力解决这个问题。

我遇到的问题是当我使用Froala上传文件时,可以毫无问题地上传txt,doc和pdf文件。当我尝试上传任何其他类型的文件(word(docx),excel,xml ...)时,出现错误

Parsing response failed.

好吧,首先让我指定我具有指定的设置,该设置应该允许我上传任何类型的文件

fileAllowedTypes: ['*'],

我尝试上传很小的文件,所以我知道它与文件大小无关。

我做了一个我认为很有趣的测试。我打开记事本并创建了一个txt文件,其中没有任何内容,因此为空白。当我尝试上传该文件时,它会返回相同的错误。 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的文档中,默认参数是['*'],在我看来,由于星号,它的意思是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”。您所要做的就是向wysiwyg-editor-php-sdk-master/lib/FroalaEditor/File.php添加您想要的扩展名和MimeType,然后BAM将起作用。这是我编辑的SDK中文件File.php的新版本,允许所有Office文档。

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'
      )
    )
  );

希望这可以帮助某人避免头痛

0 个答案:

没有答案