我一直在和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'
)
)
);
希望这可以帮助某人避免头痛