Php 如何将图像上载到刚创建的目录/子文件夹

Php 如何将图像上载到刚创建的目录/子文件夹,php,file-upload,subdirectory,Php,File Upload,Subdirectory,下面的代码允许在“albums”目录中命名和创建一个新文件夹,还可以上载同一目录中的图像。你能告诉我如何在我创建的新子文件夹中直接上传图像吗。 表格如下: <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data"> Album name : <input type="text" name="textfield"

下面的代码允许在“albums”目录中命名和创建一个新文件夹,还可以上载同一目录中的图像。你能告诉我如何在我创建的新子文件夹中直接上传图像吗。 表格如下:

    <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'];

// 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;
}
?> 

在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;
}
?> 


Wow!让用户键入文件夹时要小心:
。/../../../lols
我应该添加一个变量,您可以将路径存储在变量中:
$path='./albums/'$获取文件夹您可以稍后在脚本中使用它只需将$get\u文件夹添加到$upload\u路径?哇!让用户键入文件夹时要小心:
。/../../../lols
我应该添加一个变量,您可以将路径存储在变量中:
$path='./albums/'$获取文件夹您可以稍后在脚本中使用它只需将$get_文件夹添加到$upload_路径?图像仍在“albums”目录中,现在它会将创建的新子文件夹名称添加到上载图像名称的开头:/我更新了代码示例
$uploadpath=“./albums/”$获取_文件夹。“/”图像仍在“albums”目录中,现在它将创建的新子文件夹的名称添加到上载图像名称的开头:/我更新了代码示例
$uploadpath=“./albums/”$获取_文件夹。“/”