2010-07-28 2 views
0

У меня есть сценарий загрузки файлов, который работает [наконец], но хочет, чтобы пользователи отправляли фотографии в папку, которую я хочу создать как имя пользователя. Я думал, что могу просто представить файл, и тогда он будет создавать его, но это не так, так как я могу это сделать? Это мой сценарий: PHP код:создать новую папку с php

<?php 
// Configuration part 
$dbhost = "localhost"; // Database host 
$dbname = "users"; // Database name 
$dbuser = "dbuser"; // Database username 
$dbpass = ""; // Database password 

// Connect to database 
$db = mysql_connect($dbhost, $dbuser, $dbpass) or die("Error: Couldn't connect to database"); 
mysql_select_db($dbname, $db) or die("Error: Couldn't select database."); 

if($IsLoggedIn) 
{ $userid = $_GET["userid"]; 
    if($_POST['Submit']) 
     { 

      if($userid) 
      { $uploadName = mysql_query("SELECT * FROM users WHERE userId ='" 
          . $userid . "'"); 
      while ($upName = mysql_fetch_row($uploadName)) 
       { $userName2 = $upName[1]; 
        $userPic1 = $upName[11]; 
        echo "$userName2"; } } 

//If the Submitbutton was pressed do: 

      if ($_FILES['imagefile']['type'] == 'image/pjpeg') 
       { 

//this is where the pic is put into a folder by the username 
    copy ($_FILES['imagefile']['tmp_name'], 
    "pics/profiles/" . $userName2 . "/" . $_FILES['imagefile']['name']) 
    or die ("Could not copy"); 

     echo ""; 
     echo "Name: ".$_FILES['imagefile']['name'].""; 
     echo "Size: ".$_FILES['imagefile']['size'].""; 
     echo "Type: ".$_FILES['imagefile']['type'].""; 
     echo "Copy Done...."; 
     } 


     else { 
      echo ""; 
      echo "Could Not Copy, Wrong Filetype (".$_FILES['imagefile']['name'].")"; 
     } 
} 

?> 
<form name="form1" method="post" action="index.php?page=classupload&userid=<?php echo "$userid"; ?>" enctype="multipart/form-data"> 
<input type="file" name="imagefile"> 

<input type="submit" name="Submit" value="Submit"> 
</form> 
<?php } else { ?>How did you get here? You aren't <a href="index.php?page=login">Logged In</a>. 
<?php } ?> 

есть ли способ сделать это? Может быть, даже когда пользователь создан? благодаря!

+5

Хотя глядя на http://forums.devarticles.com/php-development-48/create-new-folder-with-php-4113.html, что этот вопрос на самом деле? – Gumbo

ответ

3
$directoryPath = "/home/domain/public_html/site_name/pics/profiles/".$userName2; 
mkdir($directoryPath, 0644); 
+0

Если он не работает, попробуйте установить права доступа к файлам 0755 – Martin

+0

спасибо Я пробовал это: $ structure = './users/'.$usercheck; if (! Mkdir ($ structure, 0, true)) { die ('Не удалось создать папки ...'); } –

2

Ответ на вопрос "Как создать папку с PHP" - mkdir(). Я не могу понять, что все этот код имеет отношение к теме.

0

это должно сделать это if(!file_exists($targetPath)) mkdir($targetPath); но вы должны иметь права доступа

3

Вы можете дополнительно проверить, если каталог вы в разрешениях вам создавать новые каталоги. Вот несколько примеров валидации для вас, чтобы повысить надежность вашего приложения.

$parentDir = '/home/domain/public_html/site_name/pics/profiles/'; 
if(!is_dir($parentDir)) { // Check if the parent directory is a directory 
    die('Invalid path specified'); 
} 

if(!is_writable($parentDir)) { // Check if the parent directory is writeable 
    die('Unable to create directory, permissions denied.'); 
} 

if(mkdir($parentDir . $userName2) === false) { // Create the directory 
    die('Problems creating directory.'); 
} 
die('Created directory successfully'); // Success point 
Смежные вопросы