意外的令牌<在JSON的第0位tinymce

时间:2017-11-17 11:04:15

标签: php json tinymce

这个问题被多次询问,并且所有这些问题以不同的方式被问到,这就是为什么我怀疑我的问题是在他们中解决的。

我将 TinyMCE 与文件上传器一起使用。如果我使用URL它可以工作,因为它可以从互联网上取回它。当我想在文件夹中使用图像时,它会在TinyMCE中上传它的图像,并在“图像上传:100%”的框上方。但是这条消息保持在最顶层,当我发布内容时,除了图像将被发送。回想一下,我注意到文件目录中没有要放置所有上传图像的内容。此外,它还给了一个错误。

意外的令牌<在位置0的JSON中: 抬头看错误,发现了一些有趣的东西。它显示了内容的路径。

move_uploaded_file(this_is_the_path/this_is_the_image.jpg)

在这个例子中它看起来很好但是在开发工具中,路径表示为橙色,这是一个字符串,但文件是黑色的。这是否存在问题? 我将它包裹在一个字符串中,显而易见的结果是:

move_uploaded_file(this_is_the_path/'this_is_the_image.jpg')

这显然是错误的。

2个相关的问题,但目前并不重要,无法计入问题。

如果我更换某些部件。不知道哪个。它从错误位置到VM'随机数'到正在发生行动的首页。

以数字开头的文件根本不会上传,并会收到错误消息:500。

主要问题解决后,我会调查一下。

我的用于处理路径的PHP代码。

<?php
    $accepted_origins = array("http://localhost:8080");
    $imageFolder = "uploaded_content_frontpage/";
    reset ($_FILES);
    $temp = current($_FILES);
    if (is_uploaded_file($temp['tmp_name'])){
        if (isset($_SERVER['HTTP_ORIGIN'])) {
            if (in_array($_SERVER['HTTP_ORIGIN'], $accepted_origins)) {
                header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
            } else {
                header("HTTP/1.0 403 Origin Denied");
                return;
            }
        }

// Sanitize input
        if (preg_match("/([^\w\s\d\-_~,;:\[\]\(\).])|([\.]{2,})/", $temp['name'])) {
            header("HTTP/1.0 500 Invalid file name.");
            return;
        }

// Verify extension
        if (!in_array(strtolower(pathinfo($temp['name'], PATHINFO_EXTENSION)), array("gif", "jpg", "png"))) {
            header("HTTP/1.0 500 Invalid extension.");
            return;
        }

      // Accept upload if there was no origin, or if it is an accepted origin
        $filetowrite = 'uploaded_content_frontpage/'.$temp['name'];
        move_uploaded_file($temp['tmp_name'], $filetowrite);

        echo json_encode(array('location' => $filetowrite));
   } else {
        // Notify editor that the upload failed
        header("HTTP/1.0 500 Server Error");
   }
?>

路径错误或者是错字还是别的什么?

$(document).ready(function() {
tinymce.init ({
        theme: 'modern',
        selector: '.add_body_structure',
        height: 1000,
        menubar: true,
        branding: false,
        toolbar: 'undo redo | styleselect bold italic forecolor backcolor fontselect fontsizeselect | link paste | alignleft aligncenter alignright alignjustify | outdent indent bullist numlist | removeformat | insert',
        plugins: ' contextmenu print preview searchreplace autolink directionality visualblocks visualchars fullscreen image link media mediaembed template table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists textcolor wordcount imagetools contextmenu colorpicker textpattern help autoresize noneditable', 
        contextmenu: 'paste link image inserttable cell row column deletetable',
        advlist_bullet_styles: 'square',
        advlist_number_styles: 'lower-alpha,lower-roman,upper-alpha,upper-roman',
        statusbar: false,
        browser_spellcheck: true,
        image_title: true,      
        automatic_uploads: true,
        media_live_embeds: true,
        contextmenu: true,
        relative_urls: false,
        remove_script_host: false,
        paste_data_images: true,
        encoding: 'xml',
        invalid_elements: 'script, input, textarea, textfield, col, colgroup, caption, dir, meta, object, select, option, source, title',
        fontsize_formats: '8pt 10pt 12pt 14pt 16pt 18pt 20pt 22pt 24pt 26pt 28pt 30pt 32pt 34pt 36pt 38pt 40pt',
        images_upload_url: '/wysiwyg/tinymce_main/wysiwyg_one_page_version2.1/views/home/code_for_images/image_uploader.php',

        file_picker_callback: function(cb, value, meta) {
            var input = document.createElement('input');
            input.setAttribute('type', 'file');
            input.setAttribute('accept', 'image/*, audio/*, video/*');

            input.onchange = function() {
                var file = this.files[0];

                var reader = new FileReader();
                reader.onload = function () {

                    var id = 'blobid' + (new Date()).getTime();
                    var blobCache =  tinymce.activeEditor.editorUpload.blobCache;
                    var base64 = reader.result.split(',')[1];
                    var blobInfo = blobCache.create(id, file, base64);
                    blobCache.add(blobInfo);
                    // call the callback and populate the Title field with the file name
                    cb(blobInfo.blobUri(), { title: file.name });
                };
                reader.readAsDataURL(file);
            };
        input.click();
        }

});
});     

警告: move_uploaded_file(uploaded_content_frontpage / blobid1510920245387.jpg):无法打开流:C:\ wamp \ www \ wysiwyg \ tinymce_main \ wysiwyg_one_page_version2.1 \ views \ home中没有此类文件或目录\ code_for_images \ image_uploader.php 45

第45行表示move_uploaded_file($ temp ['tmp_name'],$ filetowrite);

正如您所见,我无法打开流,因为我的目录中没有此类文件。

1 个答案:

答案 0 :(得分:0)

评论

echo $filetowrite;

并检查,因为文件路径在json之前被回显,这就是导致JSON解析错误的原因。 还有一个额外的&#39;&#39;在你的

$filetowrite = 'uploaded_content_frontpage/'.$temp['name'].(see here);