使用php检查文件夹是否存在,如果不存在,请在文件上载脚本上创建一个文件夹

使用php检查文件夹是否存在,如果不存在,请在文件上载脚本上创建一个文件夹,php,mysql,Php,Mysql,我正在尝试为mp3上传创建一个PHP脚本,但是如果不存在,我想使用用户的会话$\u会话[username]在上传时创建一个文件夹 在mp3/文件夹中,当我在命令行中运行时,我没有收到任何错误,但当我尝试加载mp3时,每次都失败,并且无法创建文件夹 <?php session_start(); if (isset ($_SESSION ['band_id' ])) { $band_id = $_SESSION ['band_id' ]; $bandna

我正在尝试为mp3上传创建一个PHP脚本,但是如果不存在,我想使用用户的会话$\u会话[username]在上传时创建一个文件夹 在mp3/文件夹中,当我在命令行中运行时,我没有收到任何错误,但当我尝试加载mp3时,每次都失败,并且无法创建文件夹

<?php 


session_start();

if (isset      ($_SESSION ['band_id'  ]))
{
    $band_id  = $_SESSION ['band_id'  ];
    $bandname = $_SESSION ['bandname' ];
    $username = $_SESSION ['username' ];
}

// set database connection

require("connect.php");



// lets get our posts //
$song     = $_FILES['song_name'];
// folder that will hold songs
$songpath = '/mp3/' . $_SESSION['username'];

// song-file pathname
$songpath .= $song['name'];

if (!file_exists($songpath)) {
    mkdir($songpath."/".$_SESSION['username'], "/" ,0777,true);
}

var_dump($songpath);

// move the file from the tmp folder to the song folder
if (move_uploaded_file ($song['tmp_name'], $songpath))
{
    print "<p>Upload succeeded thank you</p>\n";
}
else
{
    print "<p>Upload failed, sorry</p>\n";
}

print <<<END
<p>
To continue, <a href="index.php">click here.</a>
</p>
</body>
</html>
END;

?>

您使用了错误的目录路径

使用以下命令:

// lets get our posts //
$song     = $_FILES['song_name'];
// folder that will hold songs
$songdir = '/mp3/' . $_SESSION['username'] . '/';

// song-file pathname
$songpath = $songdir . $song['name'];

if (!file_exists($songdir)) {
    mkdir($songdir, 0777, true);
}
检查phpinfo();
什么是tmp目录?还要检查最大文件大小并检查所有路由的用户权限

,这样我就可以使用代码,在朋友的帮助下就可以使用了 谢谢你的老程序员。简而言之,我必须给出绝对路径,检查mp3文件夹是否存在,如果没有,则检查用户是否有文件夹/mp3/user 似乎效果不错:)


这似乎修复了文件路径,我使用了var_dump($songpath),当我运行脚本时,我得到了这个字符串(29)“/mp3/yay/bensound dubstep.mp3”上传失败,很抱歉,mp3文件夹中没有名为yay的文件夹。我已经编辑了mkdir语句,现在它应该创建了正确的目录。Dang仍然收到相同的错误,即使我们在mkdir()语句中将权限设置为0777,是否可能存在权限问题?是的,可能基础文件夹没有足够的权限。如果手动创建目录,是否也会出现错误?是的,我只是尝试了一下,我手动创建了文件夹并将权限设置为0777,运行了相同的脚本错误,字符串(28)“/mp3/yay/984030\u 20227709.mp3”上载失败,sorryupload\u max\u filesize 800Mupload\u max\u filesize 800M和Upload\u tmp\u dir无值,您还可以查找您的sel,如果我错过了一些东西,但我可以上传到主音频播放器,我会将歌曲放在mp3文件夹中,在主音频播放器上播放,但我也希望用户的个人资料中有自己的音频播放器,所以最后的路径应该是/public_HTML/mp3/userfolder如果这有意义的话也可以看看ympradio.Com我只是挠头我觉得一切都很好,但它不是lol
<?php




session_start();

if (isset      ($_SESSION ['band_id'  ]))
{
    $band_id  = $_SESSION ['band_id'  ];
    $bandname = $_SESSION ['bandname' ];
    $username = $_SESSION ['username' ];
}

// set database connection

require("connect.php");



// lets get our posts //
$song     = $_FILES["song_file"]["name"];
// Main MP3-files directory
$mp3dir   = '/var/www/ympradio.com/public_html/mp3';

// Create it, if necessary
if (!file_exists ($mp3)) {
    mkdir ($mp3dir, 0777, true);
}

// Folder that will hold user's files
$songdir = $mp3dir . '/' . $_SESSION ['username'];

// Create it, if necessary
if (!file_exists ($songdir)) {
    mkdir ($songdir, 0777, true);
}

// Song-file pathname
$songpath = $songdir . '/' . $song;

var_dump($songpath);

$songtemp = $_FILES["song_file"]["tmp_name"];

// move the file from the tmp folder to the song folder
if (move_uploaded_file ($songtemp, $songpath))
{
    print "<p>Upload succeeded thank you</p>\n";
}
else
{
    print "<p>Upload failed, sorry</p>\n";
    print "<p>($mp3dir) ($songdir) ($songpath)</p>";
}

print <<<END
<p>
To continue, <a href="index.php">click here.</a>
</p>
</body>
</html>
END;

?>