отладка файла move_uploaded_file в cakephp - PullRequest
2 голосов
/ 16 февраля 2011

Я использую move_uploaded_file для загрузки файлов в cakephp, это работало какое-то время, но вдруг оно сломалось.(Кажется, я не вижу каких-либо недавних изменений в svn, связанных с этой проблемой, поэтому я не могу просто отменить их).

Проблема в том, что move_uploaded_file возвращает false, но это не говоритмне что не так.Я пытался сделать:

error_reporting(E_ALL);
ini_set("display_errors", 1);

, но ничего не добился.Об ошибках не сообщается.

if (!file_exists($folder_url . '/' . $filename))
{
    // create full filename
    $full_url = $folder_url . '/' . $filename;
    $url = $rel_url . '/' . $filename;
    // upload the file
    error_reporting(E_ALL);
    ini_set("display_errors", 1);
    $success = move_uploaded_file($file['tmp_name'], $url);
    $result['success'] = $success;
    $result['debug']['url'] = $url;
    $result['debug']['full_url'] = $full_url;
    $result['debug']['file'] = $folder_url . '/' . $filename;
}

Хост-сервер находится в Ubuntu Server 9.10, на котором запущен LAMP, компьютер для разработки - Windows 7, на котором запущено XAMPP

РЕДАКТИРОВАТЬ:

Я изменил активациюсообщение об ошибке перед загрузкой, и оно все еще не работает:

error_reporting(E_ALL);
ini_set("display_errors", 1);
$success = move_uploaded_file($file['tmp_name'], $url);

В Cakephp Config:

Configure::write('debug', 2);
Configure::write('log', E_ALL ^ E_NOTICE);

РЕДАКТИРОВАТЬ 2:

Я сделал скандир на$ rel_url и он показывает файлы просто отлично

[test2] => Array
    (
        [0] => .
        [1] => ..
        [2] => 1.jpg
        [3] => 10.jpg
        [4] => 16.jpg
        [5] => 2.jpg
        [6] => 2010-12-12-0142065.jpg
        [7] => 22.jpg
        [8] => 3.jpg
        [9] => 4.jpg
        [10] => 5.jpg
        [11] => 6.jpg
        [12] => 7.jpg
        [13] => 8.jpg
        [14] => 9.jpg
        [15] => error.png
    )

[debug] => Array
(
    [url] => img/recipes/555.jpg
    [rel_url] => img/recipes
)

Ответы [ 3 ]

0 голосов
/ 17 февраля 2011

Если файл был загружен, а каталог - 777, возможно, пути неправильные.

Вы пытались поместить файл в целевой каталог и проверить с помощью file_exists, правильный ли ваш $ url?

Однажды у меня была другая проблема с именем файла. Я не помню точно все детали, но это было связано с ударением в имени файла.

EDIT

попробуй с абсолютным URL, вот что я делаю

$url = WWW_ROOT.'img/' . $filename;
0 голосов
/ 05 января 2012

Вы проверили, является ли владелец каталога www-data? попробуй:

chown -R www-data:www-data /your/upload/folder/
0 голосов
/ 16 февраля 2011

Вы говорите, что в Subversion были обновления. Я думаю, что вы сделали svn checkout или svn update, который испортил разрешения для каталога, в который вы пытаетесь загрузить. Проверьте ваши разрешения.

Кстати: move_uploaded_file () - это встроенная функция PHP. Это не имеет ничего общего с CakePHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...