我想在 for 循环中上传单个文件。每次循环运行时,文件位置都不同。
下面的代码是我尝试过的,
$num =3;
for($i=0; $i<3; $i++) {
if (isset($_FILES['pic'])) {
$tmpname = $_FILES['pic']['tmp_name'];
$dir = $i . "/images";
if (!file_exists($dir)) {
mkdir($dir, 0777);
$index_file = "<?php'nheader('"Location: ../index.php'");'n?>";
$fp = fopen($dir . "/index.php", "w");
fwrite($fp, $index_file);
fclose($fp);
}
$ext = $_FILES['pic']['name'];
$filetype = pathinfo($ext, PATHINFO_EXTENSION);
$unique_name = (uniqid(rand(), true)) . "." . $filetype;
if (move_uploaded_file($tmpname, $dir . "/" . $unique_name)) {
$file = "images/" . $unique_name;
echo "uploading";
unlink($i . "/" . $customer["pic"]);
} else {
echo "not uploading";
}
}
由于有多个
文件要上传,因此每个文件都有一个唯一的名称。您需要将$tmpname = $_FILES['pic']['tmp_name'];
替换为
$tmpname = $_FILES['pic']['tmp_name'][$i];
$num =3;
for($i=0; $i<3; $i++) {
if (isset($_FILES['pic'])) {
$tmpname = $_FILES['pic']['tmp_name'][$i];
$dir = $i . "/images";
if (!file_exists($dir)) {
mkdir($dir, 0777);
$index_file = "<?php'nheader('"Location: ../index.php'");'n?>";
$fp = fopen($dir . "/index.php", "w");
fwrite($fp, $index_file);
fclose($fp);
}
$ext = $_FILES['pic']['name'][$i];
$filetype = pathinfo($ext, PATHINFO_EXTENSION);
$unique_name = (uniqid(rand(), true)) . "." . $filetype;
if (move_uploaded_file($tmpname, $dir . "/" . $unique_name)) {
$file = "images/" . $unique_name;
echo "uploading";
unlink($i . "/" . $customer["pic"]);
} else {
echo "not uploading";
}
}