我正在尝试对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天前上线的网站的最后一期!
谢谢,
尼克
答案 0 :(得分:0)
HY
尝试使用'songs/'
,不使用第一个'/'