0

基本上我想要完成的是使用具有以下功能的编辑器编辑器从文件夹中获取上传图像的列表:imageGetJson

我已经设法让 fwrite 在我的 images.json 文件中添加一个数组。现在的问题是,redactor 需要在输入周围加上括号才能渲染图像。

所以我的问题是如何获得数据周围的括号?

我到目前为止的上传文件是这样的:

// This is a simplified example, which doesn't cover security of uploaded images. 
// This example just demonstrate the logic behind the process. 


// files storage folder
$dir = '../img/uploads/';

$_FILES['file']['type'] = strtolower($_FILES['file']['type']);

if ($_FILES['file']['type'] == 'image/png' 
|| $_FILES['file']['type'] == 'image/jpg' 
|| $_FILES['file']['type'] == 'image/gif' 
|| $_FILES['file']['type'] == 'image/jpeg'
|| $_FILES['file']['type'] == 'image/pjpeg')
{   
    // setting file's mysterious name
    $filename = md5(date('YmdHis')).'.jpg';
    $file = $dir.$filename;

    // copying
    copy($_FILES['file']['tmp_name'], $file);

    // displaying file    
    $array = array(
        'filelink' => '/img/uploads/'.$filename,
        'thumb' => '/img/uploads/'.$filename,
        'image' => '/img/uploads/'.$filename,
    );



    echo stripslashes(json_encode($array));

    $json = stripslashes(json_encode($array)), "\n";
    $files = fopen('../img/uploads/images.json','a+');
    fwrite($files, $json . "\n");
    fclose($files);
}

我制作了一个包含文件位置的数组并将其写入文件 images.json

我需要它的样子是这样的

[
    {"filelink":"image.jpg","thumb":"image.jpg","image":"image.jpg"}
    {"filelink":"image.jpg","thumb":"image.jpg","image":"image.jpg"}
    {"filelink":"image.jpg","thumb":"image.jpg","image":"image.jpg"}
    {"filelink":"image.jpg","thumb":"image.jpg","image":"image.jpg"}
]

只有它像这样添加:

[]
{"filelink":"image.jpg","thumb":"image.jpg","image":"image.jpg"}
{"filelink":"image.jpg","thumb":"image.jpg","image":"image.jpg"}
{"filelink":"image.jpg","thumb":"image.jpg","image":"image.jpg"}

希望有人可以帮助我,因为我无法弄清楚。

提前致谢

4

1 回答 1

1

我找到了另一个解决方案:只需更改 php 文件 data.php 中的 data.json,该文件读取您要列出的目录,然后转换为 json 并回显。

这是我现在使用的(演示版,因为我的贝宝还没有运行)(路径应该根据你的设置设置)

在加载编辑器的页面中:

imageGetJson: 'redactor901trial/demo/json/data.php'

$path = 'redactor901trial/demo/json/';
$upload_dir = 'images/';

$handle = opendir($upload_dir);

while ($file = readdir($handle)) {
   if(!is_dir($upload_dir.$file) && !is_link($upload_dir.$file)) {


    $docs[] = $file;
   }
}

sort($docs);

foreach($docs as $key=>$file){
    $array[] = array(
            'filelink' => $path.$upload_dir.$file,
            'thumb' => $path.$upload_dir.$file,
            'image' => $path.$upload_dir.$file,
            'folder' => 'Folder 5'
        ); 
        }   
echo stripslashes(json_encode($array));

希望这会有所帮助,现在还为时不晚;)

问候

史蒂文

于 2013-06-20T10:39:14.937 回答