Как получить изображение для загрузки в каталог в редакторе Redactor?

В данный момент я работаю над созданием CMS. У меня есть код редактора, так что я могу успешно редактировать текст с ним. Однако сейчас я работаю над тем, чтобы загрузить изображение для работы в текстовом редакторе, и столкнулся с несколькими проблемами, с которыми я застрял в течение довольно долгого времени.

Мне удалось перейти к этапу, на котором я могу выбрать изображение для загрузки... а затем, когда оно загружается, путь к изображению правильно входит в текстовый редактор, однако изображение, похоже, не записывает в каталог.

Я работаю локально, и у меня установлен каталог /CMS/public/uploads/.

Вот моя функция загрузки.

<?php

// files storage folder
$dir = '/CMS/public/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
    $file = $dir.$_FILES['file']['name'];

    // copying
    move_uploaded_file($_FILES['file']['name'], $file);

    // displaying file
    $array = array(
        'filelink' => $file
    );

    echo stripslashes(json_encode($array));
}

?>

Этот код в основном сообщает файлу, куда его копировать.

Есть ли у кого-нибудь идеи, почему это может не копировать каталог?

Спасибо


person ChrisJenks    schedule 12.03.2014    source источник


Ответы (1)


Я думаю, это должно сработать: измените move_uploaded_file($_FILES['file']['name'], $file); на move_uploaded_file($_FILES['file']['tmp_name'], $file);, $_FILES['file']['tmp_name'] - это место, где находится временный файл, и оттуда он перемещается по указанному пути.

Немного изменил код: (надеюсь, сработает)

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

$allowed_type = array('image/png', 'image/jpg', 'image/gif', 'image/jpeg', 'image/pjpeg');

if(in_array($type, $allowed_type)) {
    // setting file's mysterious name
    $file = $_FILES['file']['name'];
    $dir = '/CMS/public/uploads/'.$file;

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

    // displaying file
    $array = array(
        'filelink' => $file
    );

    echo stripslashes(json_encode($array));
}
?>
person SuperDJ    schedule 12.03.2014
comment
Привет... спасибо за ваш ответ... Я попробовал то, что вы сказали, однако происходит то же самое. Какой-то он странный :/ - person ChrisJenks; 13.03.2014
comment
Еще раз спасибо за изменение кода... Он все еще не работает. Изображение просто не записывается в файл ... как вы думаете, это как-то связано с разрешениями на локальном хосте? - person ChrisJenks; 14.03.2014
comment
Это может быть что-то с конфигурацией вашего локального хоста. Я не знаю размер файла, который вы пытаетесь загрузить, но где-то в файле php.ini установлено ограничение на размер загружаемого файла. Если ваш файл больше, чем он не работает. для меня это называлось: post_max_size = 10M и upload_max_filesize = 10M, но для вас это будет что-то другое. Я думал, что в большинстве случаев это установлено на 2M. - person SuperDJ; 14.03.2014