使用多个输入文件上传图像时,我遇到设置文件名的问题。
$total = count($_FILES['image']['name']);
for($i=0; $i<$total; $i++)
{
$tmpFilePath = $_FILES['image']['tmp_name'][$i];
if($tmpFilePath != "")
{
$info1 = pathinfo($_FILES['image']['name'][$i]);
$ext = $info1['extension'];
$newname1 = "CALIBRATION_.".$ext;
$newFilePath = "../assets/img/product/" . $newname1[$i];
if(move_uploaded_file($tmpFilePath, $newFilePath)){}
}
}
这是PHP:
Release1.0
当我尝试运行代码时,它显示错误的名称&amp;类型。你可以在下面看到截图。
我想要的是在上传后使用正确的名称和文件类型重命名文件。
答案 0 :(得分:3)
您将$ newname1作为数组访问,这不是您想要的。另外,你错过了你的名字随机。
尝试做
$total = count($_FILES['image']['name']);
for($i=0; $i<$total; $i++)
{
$tmpFilePath = $_FILES['image']['tmp_name'][$i];
if($tmpFilePath != "")
{
$info1 = pathinfo($_FILES['image']['name'][$i]);
$ext = $info1['extension'];
$newname1 = "CALIBRATION_" . rand(10000,99999) . "." . $ext;
$newFilePath = "../assets/img/product/" . $newname1;
if(move_uploaded_file($tmpFilePath, $newFilePath)){}
}
}
答案 1 :(得分:1)
从此行[$i]
移除$newname1[$i]
。这将创建一个字符串数组,因此文件的名称将是单个字符。添加rand()
或添加任何唯一编号以获取文件的唯一名称
$newname1 = "CALIBRATION_".rand(1000, 9999).".".$ext;
$newFilePath = "../assets/img/product/" . $newname1;
答案 2 :(得分:1)
$newname1
是字符串而不是数组。如果要使用新名称连接$i
值,可以像下面的代码
if($tmpFilePath != "")
{
$info1 = pathinfo($_FILES['image']['name'][$i]);
$ext = $info1['extension'];
$newname1 = "CALIBRATION_".$i.".".$ext;
$newFilePath = "../assets/img/product/" . $newname1;
if(move_uploaded_file($tmpFilePath, $newFilePath)){}
}
答案 3 :(得分:1)
您需要从此行中删除dpad(x, 2)
# [,1] [,2]
# [1,] "2017-06-30" NA
# [2,] "2017-07-31" NA
# [3,] "2017-08-31" "1"
# [4,] "2017-09-30" "2"
# [5,] "2017-10-31" "3"
# [6,] "2017-11-30" "4"
# [7,] "2017-12-31" "5"
# [8,] "2018-01-31" "6"
# [9,] "2018-02-28" "7"
# [10,] "2018-03-31" "8"
# [11,] "2018-04-30" "9"
# [12,] "2018-05-31" "10"
才能获取全名,而不仅仅是文件名的[$i]
个字符:
$i
如果要生成具有原始名称和扩展名但以$newFilePath = "../assets/img/product/" . $newname1[$i];
为前缀而不是随机数的新文件名,则可以使用两个版本:
CALIBRATION_.
如果您只使用一次变量,则不需要创建变量,如代码中的
$newname1 = "CALIBRATION_" . $info1['basename']; // or $newname1 = "CALIBRATION_" . $info1['filename'] . '.' . $info1['extension'];
。在这里,您可以使用$ext
,其中包含$info1
,dirname
,basename
和filename