Php 上传多个文件,如果在 foreach 中不相等则重命名
Php Upload multiple files and rename it if not equal at foreach
我正在尝试上传多个文件示例:
foreach ($_FILES["images"]["error"] as $key => $error)
{
if ($error == UPLOAD_ERR_OK)
{
$name = $_FILES["images"]["name"][$key];
move_uploaded_file( $_FILES["images"]["tmp_name"][$key], $_SERVER['DOCUMENT_ROOT'].'/var/uploads/'.$product_id . "/" . $_FILES['images']['name'][$key]);
}
}
好的,现在服务器中的文件为 1.jpg、2.jpg、3.jpg、4.jpg、5.jpg.. 直到 24.jpg
现在我正在为每个文件做一个检查,如果我没有重命名,我上传的文件是否有我想要的名字。
$directory = $_SERVER['DOCUMENT_ROOT'].'/var/uploads/' . $product_id . "/";
$files = glob($directory . "*.jpg");
foreach($files as $i => $name)
{
$newname = sprintf($directory . "%d.jpg", $i+1);
if ($newname != $i + 1)
{
rename($name, $newname);
}
}
现在的问题是,当我重命名它们时,我得到了这个结果
为什么2.jpg、3.jpg、4.jpg直到9.jpg消失了?
提前致谢!
试试这个..
$directory = $_SERVER['DOCUMENT_ROOT'].'/var/uploads/' . $product_id . "/";
$i = 1;
while (false !== ($file = readdir($directory)))
{
// check extension
if (strtolower(pathinfo($file, PATHINFO_EXTENSION)) == 'jpg')
{
$newName = $i . '.jpg';
rename($file, $newName);//rename file
$i++;
}
}
closedir($directory)
我找到了答案:)
$directory = $_SERVER['DOCUMENT_ROOT'].'/var/uploads/' . $product_id . "/";
$files = glob($directory . "*.jpg");
$i = 1;
foreach($files as $e => $name)
{
$newname = $directory . $i . ".jpg";
if($name != $newname)
{
rename($name, $newname);
}
else
{
return 0;
}
$i++;
}
我正在尝试上传多个文件示例:
foreach ($_FILES["images"]["error"] as $key => $error)
{
if ($error == UPLOAD_ERR_OK)
{
$name = $_FILES["images"]["name"][$key];
move_uploaded_file( $_FILES["images"]["tmp_name"][$key], $_SERVER['DOCUMENT_ROOT'].'/var/uploads/'.$product_id . "/" . $_FILES['images']['name'][$key]);
}
}
好的,现在服务器中的文件为 1.jpg、2.jpg、3.jpg、4.jpg、5.jpg.. 直到 24.jpg
现在我正在为每个文件做一个检查,如果我没有重命名,我上传的文件是否有我想要的名字。
$directory = $_SERVER['DOCUMENT_ROOT'].'/var/uploads/' . $product_id . "/";
$files = glob($directory . "*.jpg");
foreach($files as $i => $name)
{
$newname = sprintf($directory . "%d.jpg", $i+1);
if ($newname != $i + 1)
{
rename($name, $newname);
}
}
现在的问题是,当我重命名它们时,我得到了这个结果
为什么2.jpg、3.jpg、4.jpg直到9.jpg消失了?
提前致谢!
试试这个..
$directory = $_SERVER['DOCUMENT_ROOT'].'/var/uploads/' . $product_id . "/";
$i = 1;
while (false !== ($file = readdir($directory)))
{
// check extension
if (strtolower(pathinfo($file, PATHINFO_EXTENSION)) == 'jpg')
{
$newName = $i . '.jpg';
rename($file, $newName);//rename file
$i++;
}
}
closedir($directory)
我找到了答案:)
$directory = $_SERVER['DOCUMENT_ROOT'].'/var/uploads/' . $product_id . "/";
$files = glob($directory . "*.jpg");
$i = 1;
foreach($files as $e => $name)
{
$newname = $directory . $i . ".jpg";
if($name != $newname)
{
rename($name, $newname);
}
else
{
return 0;
}
$i++;
}