Php 多路上传到文件夹
我试图上传多个文件,根据序列号创建一个文件夹,并将文件保存在其中。我的代码如下: 用于多次上载的HTML代码: 用于多次上传的PHP代码 尽管我上传了多个文件,但只有最后一个文件保存在目录中。如何修改代码以便上载多个文件? 感谢您的帮助:这在中是可能的。PHP 5.4示例:Php 多路上传到文件夹,php,file-upload,directory,Php,File Upload,Directory,我试图上传多个文件,根据序列号创建一个文件夹,并将文件保存在其中。我的代码如下: 用于多次上载的HTML代码: 用于多次上传的PHP代码 尽管我上传了多个文件,但只有最后一个文件保存在目录中。如何修改代码以便上载多个文件? 感谢您的帮助:这在中是可能的。PHP 5.4示例: <!doctype html> <html> <head> <title>Test</title> </head>
<!doctype html>
<html>
<head>
<title>Test</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<input type="text" name="Filename">
<input type="file" name="my_file[]" multiple>
<input type="submit" value="Upload">
</form>
<?php
if (isset($_FILES['my_file'])) {
$myFile = $_FILES['my_file'];
$fileCount = count($myFile["name"]);
$Filename=$_POST['Filename'];
$structure = "Uploads/SystemConfiguration/$Filename";
if (!mkdir($structure, 0777, true))
{
die('Failed to create folders...');
}
for ($i = 0; $i < $fileCount; $i++) {
$name = $_FILES["my_file"]["name"][$i];
$tmp_name=$_FILES["my_file"]["tmp_name"][$i];
move_uploaded_file($tmp_name,"$structure/$name");
?>
<p>File #<?= $i+1 ?>:</p>
<p>
Name: <?= $myFile["name"][$i] ?><br>
Temporary file: <?= $myFile["tmp_name"][$i] ?><br>
Type: <?= $myFile["type"][$i] ?><br>
Size: <?= $myFile["size"][$i] ?><br>
Error: <?= $myFile["error"][$i] ?><br>
</p>
<?php
}
}
?>
</body>
</html>
以下是在文件对话框中选择2项后在Chrome中的外观:
下面是点击上传按钮后的样子
这只是一个完整答案的草图。有关在PHP中正确、安全地处理文件上载的更多信息,请参阅。Hey!谢谢你的回复。我想知道如何将多个文件上传到创建的目录中。目前,只有一个文件正在上载。只需添加move_upload_file$myFile[tmp_name][$i],$structure/$name;在上面的代码中,使用for循环。
if (count($_FILES["myfile"]) > 0)
{
for ($i = 0; $i < count($_FILES["myfile"]["name"]); $i++)
{
foreach ($_FILES["myfile"]["error"][$i] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$structure = "Uploads/SystemConfiguration/$formno"; //FormNo is the serial number queried from the database
if (!mkdir($structure, 0777, true))
{
die('Failed to create folders...');
}
$tmp_name = $_FILES["myfile"]["tmp_name"][$i][$key];
$name = $_FILES["myfile"]["name"][$i][$key];
$target = $target .'/' .$_FILES['myfile']['name'][$i] ;
$filepath=$_FILES['myfile']['name'][$i] ;
if(move_uploaded_file($tmp_name,"$structure/$name"))
{
echo "<center>The file ". basename( $_FILES['myfile']['name'][$i]). " has been uploaded.</center>";
}
else
{
echo "No File was uploaded";
}
}
}
}
}
<!doctype html>
<html>
<head>
<title>Test</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<input type="text" name="Filename">
<input type="file" name="my_file[]" multiple>
<input type="submit" value="Upload">
</form>
<?php
if (isset($_FILES['my_file'])) {
$myFile = $_FILES['my_file'];
$fileCount = count($myFile["name"]);
$Filename=$_POST['Filename'];
$structure = "Uploads/SystemConfiguration/$Filename";
if (!mkdir($structure, 0777, true))
{
die('Failed to create folders...');
}
for ($i = 0; $i < $fileCount; $i++) {
$name = $_FILES["my_file"]["name"][$i];
$tmp_name=$_FILES["my_file"]["tmp_name"][$i];
move_uploaded_file($tmp_name,"$structure/$name");
?>
<p>File #<?= $i+1 ?>:</p>
<p>
Name: <?= $myFile["name"][$i] ?><br>
Temporary file: <?= $myFile["tmp_name"][$i] ?><br>
Type: <?= $myFile["type"][$i] ?><br>
Size: <?= $myFile["size"][$i] ?><br>
Error: <?= $myFile["error"][$i] ?><br>
</p>
<?php
}
}
?>
</body>
</html>