Строка, возвращаемая переменной, не работает, как та же строка, введенная вручную - PullRequest
0 голосов
/ 02 апреля 2011

Я пытаюсь внести некоторые коррективы в uploadify.php, который поставляется с последней версией uploadify (3.0 beta), чтобы он работал с переменной сеанса, которая хранит имя пользователя для входа и добавляет его в путь для выгрузки. Вот так выглядит uploadify.php:

<?php
session_name("MyLogin");
session_start();

$targetFolder = '/songs/' . $_SESSION['name']; // Relative to the root

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
    $targetFile = rtrim($targetPath,'/') .'/'. $_FILES['Filedata']['name'];

    // Validate the file type
    $fileTypes = array('m4a','mp3','flac','ogg'); // File extensions
    $fileParts = pathinfo($_FILES['Filedata']['name']);

    if (in_array($fileParts['extension'],$fileTypes)) {
        move_uploaded_file($tempFile,$targetFile);
        echo '1';
    } else {
        echo 'Invalid file type.';
    }
}

echo $targetFolder;

?>

Я добавил echo $targetFolder; внизу, чтобы я мог убедиться, что возвращенная строка верна, и это, например, «/ songs / nick». По какой-то причине, однако, загрузка не идет в правильную папку, то есть папку имени пользователя, но вместо этого идет в родительскую папку «песни». Папка для имени пользователя существует, с правильными разрешениями, и когда я вручную ввожу $targetFolder = '/songs/nick';, все работает нормально. Что кажется мне довольно странным. У меня ограниченный опыт использования php, но мне интересно, как, если переменная сеанса возвращает правильную строку, загрузка работает иначе, чем при вводе вручную строки.

Любая помощь будет высоко ценится. Это последний выпуск сайта, который должен был появиться 2 дня назад!

Спасибо

Ник

1 Ответ

0 голосов
/ 02 апреля 2011

Hy

Попробуйте использовать 'songs/', без первого '/'

...