需要一些帮助,我总是会遇到愚蠢的错误,当我尝试这样做时,我想要foreach数组,并且在内部执行for循环,这可能吗? 这是我的代码
$image = new SimpleImage();
$slike=array($_FILES['slika1']['tmp_name'],$_FILES['slika2']['tmp_name'],$_FILES['slika3']['tmp_name'],$_FILES['slika4']['tmp_name']);
$koliko = count($slike);
foreach ($slike as $slika) {
for ($i = 1; $i <= $koliko; $i++)
{
$slicica="../images/usluge/".mysql_insert_id()."-".$i.".jpg";
$image->load($slika);
$image->resizeToWidth(800);
$image->save($slicica);
}
}
我想获得这个名字的新照片,例如。如果最后一个id是2,我想得到这个文件名等
仍然使用我的代码我没有得到正确的值:( 或者可能有简单的方法:)
答案 0 :(得分:1)
我认为您需要的是替换以下行:
$image->load($slika);
这个:
$image->load($slike[$i-1]);
答案 1 :(得分:0)
你可能有一个问题,就像我们在数组上做一个var_dump一样,我们会看到以下内容:
array(3) { [0]=> string(5) "test1" [1]=> string(4) "tes2" [2]=> string(5) "test3" }
因此您需要将其更改为:
foreach ($slike as $key => $slika) {
您也可以使用move_uploaded_file来实现您的目标并使用linux命令convert:
foreach ($slike as $key => $slika) {
for ($i = 1; $i <= $koliko; $i++)
{
$slicica="../images/usluge/".mysql_insert_id()."-".$i.".jpg";
if(move_uploaded_file(slika,slicica)){
exec("convert $slicica -resize 200 $slicica");
}else{die('problem loading the file');}
}
}
答案 2 :(得分:0)
$i=1;
// insert into mysql table..
// [...]
$mysqlId = mysql_insert_id();
foreach ( $_FILES as $key => $value) {
$slicica="../images/usluge/".$mysqlId."-".$i.".jpg";
if(move_uploaded_file($_FILES[$key]["tmp_name"],slicica)){
$image->load($slicica);
$image->resizeToWidth(800);
$image->save($slicica);
}
else {
// error handling
}
$i++;
}