1

需要一点帮助,我总是遇到愚蠢的错误,当我尝试这样做时,我想 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,我想获取此文件名等

  • 2-1.jpg
  • 2-2.jpg
  • 2-3.jpg
  • 2-4.jpg

仍然使用我的代码我没有得到正确的值:(或者也许有简单的方法可以做到这一点:)

4

3 回答 3

1

我认为您需要替换以下行:

$image->load($slika);

对于这个:

$image->load($slike[$i-1]);
于 2013-04-29T21:53:59.993 回答
0

您可能在 foreach 中遇到问题,就好像我们在数组上执行 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');}

    }
}
于 2013-04-29T21:55:32.423 回答
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++;
}
于 2013-04-29T22:04:06.720 回答