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

В момента работя върху създаването на 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
Благодаря отново за промяната на кода... Все още не работи. Изображението просто не пише във файла... мислите ли, че има нещо общо с разрешенията на localhost? - person ChrisJenks; 14.03.2014
comment
Може да е нещо с конфигурацията на вашия локален хост. Не знам размера на файла, който се опитвате да качите, но някъде във файла php.ini има ограничение за размера на качване. Ако файлът ви е по-голям от него, не работи. за мен се казваше: post_max_size = 10M и upload_max_filesize = 10M, но за вас може да е нещо друго. Предполагах, че в повечето случаи това е настроено на 2M. - person SuperDJ; 14.03.2014