变量返回的字符串不像手动输入的字符串那样工作

时间:2011-04-02 16:24:39

标签: php string session-variables

我正在尝试对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 :(得分:0)

HY

尝试使用'songs/',不使用第一个'/'