创建目录并将多个文件上传到创建的目录PHP中



许多天来我一直在寻找一个答案。如何上传多个文件到新创建的目录。如果你查看file_upload。php你会发现两个$upload_dir变量。首先,我们把$upload_dir命名为直接目录,然后把$upload_dir命名为制作目录。简单的

所以,当我选择第一个$upload_dir时,它确实将所有文件直接上传到文件夹中,当我选择第二个$upload_dir时,它所做的是创建一个随机文件夹,但无法上传任何文件。

我想上传多个文件到新创建的文件夹

我确实参考了这个PHP -上传多张照片到新创建的目录和多个文件上传并存储在一个目录中,但对我来说不起作用

index . php

<form action="file_upload.php" method="POST"
enctype="multipart/form-data"> 

<h2>Upload Files</h2> 

<p> 
Select files to upload:  

<!-- name of the input fields are going to 
be used in our php script-->
<input type="file" name="files[]" multiple> 

<br><br> 

<input type="submit" name="submit" value="Upload" > 
</p> 
</form>  

file_upload.php

<?php  

// session_start();
// Check if form was submited 
if(isset($_POST['submit'])) { 

// Configure upload directory and allowed file types 
$rand_name = rand(1, 10000);
// $upload_dir = 'C:/fileUpload/'.DIRECTORY_SEPARATOR;
// $permit = 0777;
$allowed_types = array('jpg', 'png', 'jpeg', 'gif'); 
$upload_dir = mkdir('C:/fileUpload/'. $rand_name .'/'.DIRECTORY_SEPARATOR, 0777);

// Define maxsize for files i.e 10MB 
$maxsize = 10 * 1024 * 1024;  

// Checks if user sent an empty form  
if(!empty(array_filter($_FILES['files']['name']))) { 

// Loop through each file in files[] array 
foreach ($_FILES['files']['tmp_name'] as $key => $value) { 

$file_tmpname = $_FILES['files']['tmp_name'][$key]; 
$file_name = $_FILES['files']['name'][$key]; 
$file_size = $_FILES['files']['size'][$key]; 
$file_ext = pathinfo($file_name, PATHINFO_EXTENSION); 

// Set upload file path 
$filepath = $upload_dir.$file_name;

// Check file type is allowed or not 
if(in_array(strtolower($file_ext), $allowed_types)) { 

// Verify file size - 10MB max  
if ($file_size > $maxsize)          
echo "Error: File size is larger than the allowed limit.";  

// If file with name already exist then append time in 
// front of name of the file to avoid overwriting of file 
if(file_exists($filepath)) { 
$filepath = $upload_dir.time().$file_name; 

if( move_uploaded_file($file_tmpname, $filepath)) { 
echo "{$file_name} successfully uploaded <br />"; 
}  
else {                      
echo "Error uploading {$file_name} <br />";  
} 
} 
else { 

if( move_uploaded_file($file_tmpname, $filepath)) { 
echo "{$file_name} successfully uploaded <br />"; 
} 
else {                      
echo "Error uploading {$file_name} <br />";  
} 
} 
} 
else { 

// If file extention not valid 
echo "Error uploading {$file_name} ";  
echo "({$file_ext} file type is not allowed)<br / >"; 
}  
} 
}  
else { 

// If no files selected 
echo "No files selected."; 
} 
}  

?> 

请帮忙!

提前感谢

mkdir返回一个布尔值(true或false),而不是创建的目录路径。

您可能希望在$upload_dir中定义路径,但不将mkdir的结果分配给它:

$upload_dir = 'C:/fileUpload/'. $rand_name .'/';
if (mkdir($upload_dir, 0777)) {
//process images
}

相关内容

  • 没有找到相关文章

最新更新