Как загрузить изображения в только что созданную директорию / подпапку

Приведенный ниже код позволяет присваивать имена и создавать новые папки в каталоге "альбомы", а также загружать изображения в тот же каталог. Можете ли вы сказать мне, как загружать изображения непосредственно в новую подпапку, которую я создал. Это форма:

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" 
    method="POST" enctype="multipart/form-data"> 
 Album name :  <input type="text" name="textfield" id="textfield"> 
 Upload image: <input type="file" name="fileup" /><br/>
  <input type="submit" name="button" id="button" value="Augsupieladet">
</form>  

И код php

<?php
$get_folder = $_POST['textfield'];
mkdir ("./albums/" . $get_folder, 0777);
echo "Album created successfully";

$uploadpath = ("./albums");      //directory where the images are uploaded now
$max_size = 2000;          
$allowtype = array('bmp', 'gif', 'jpg', 'jpe', 'png', 'jpeg');        

if(isset($_FILES['fileup']) && strlen($_FILES['fileup']['name']) > 1) {
$uploadpath = $uploadpath . basename( $_FILES['fileup']['name']);       
$sepext = explode('.', strtolower($_FILES['fileup']['name']));
$type = end($sepext);       
$err = '';         

if(!in_array($type, $allowtype)) 
$err .= 'Fails: <b>'. $_FILES['fileup']['name']. 'incorrect file type.';
if($_FILES['fileup']['size'] > $max_size*1000)
$err .= 'Max size of image: '.  $max_size. ' KB.';


if($err == '') {
if(move_uploaded_file($_FILES['fileup']['tmp_name'], $uploadpath)) { 
echo 'Image: <b>'. basename( $_FILES['fileup']['name']). '</b> Upload succesful:';
}
else echo '<b>Upload unsuccesful.</b>';
}
else echo $err;
}
?> 

1 ответ

Вы не можете "напрямую" выбирать, куда файлы загружаются в PHP. То, что вы хотите сделать, это "переместить" загруженный файл в правильное место.

<?php
$get_folder = $_POST['textfield'];

// you should clean this..
$uploadpath =  "./albums/" . $get_folder.'/';

mkdir ($uploadpath, 0777);

echo "Album created successfully";
// remove the line below. variable was set previously
//$uploadpath = ("./albums");    
$max_size = 2000;          
$allowtype = array('bmp', 'gif', 'jpg', 'jpe', 'png', 'jpeg');        

if(isset($_FILES['fileup']) && strlen($_FILES['fileup']['name']) > 1) {
    $uploadpath = $uploadpath . basename( $_FILES['fileup']['name']);       
    $sepext = explode('.', strtolower($_FILES['fileup']['name']));
    $type = end($sepext);       
    $err = '';         

    if(!in_array($type, $allowtype)) 
        $err .= 'Fails: <b>'. $_FILES['fileup']['name']. 'incorrect file type.';
    if($_FILES['fileup']['size'] > $max_size*1000)
        $err .= 'Max size of image: '.  $max_size. ' KB.';


    if($err == '') {
        if(move_uploaded_file($_FILES['fileup']['tmp_name'], $uploadpath)) { 
            echo 'Image: <b>'. basename( $_FILES['fileup']['name']). '</b> Upload succesful:';
        }
        else echo '<b>Upload unsuccesful.</b>';
    }
    else echo $err;
}
?> 
Другие вопросы по тегам