0

我尝试从 PHP 表单上传图片。

关于我的图片上传,我遇到了一个奇怪的问题:

我的表格:

<form id="booking-step" method="post" action="add.php" class="booking" autocomplete="off" enctype="multipart/form-data">
<input type="file" id="AddPhotos1" name="AddPhotos[]" />
<input type="file" id="AddPhotos2" name="AddPhotos[]" />
<input type="file" id="AddPhotos3" name="AddPhotos[]" />
<input type="file" id="AddPhotos4" name="AddPhotos[]" />
<input type="file" id="AddPhotos5" name="AddPhotos[]" />
</form>

我的PHP:

if($_FILES['AddPhotos']){
    $errorAddPhotos = "";
    $validAddPhotos = "";
    for($x=0;$x<sizeof($_FILES["AddPhotos"]["name"]);$x++){
        $fichier = basename($_FILES['AddPhotos']['name'][$x]);
        $taille_maxi = 3000;
        $taille = filesize($_FILES['AddPhotos']['tmp_name'][$x]);
        $extensions = array('.png', '.jpg', '.jpeg');
        $extension = strrchr($_FILES['AddPhotos']['name'][$x], '.'); 
        if(!in_array($extension, $extensions))
        {
             $errorAddPhotos .= "Wrong extension.<br />";
        }
        if($taille>$taille_maxi)
        {
             $errorAddPhotos .= "Wrong size.<br />";
        }
        if((in_array($extension, $extensions)) && ($taille<$taille_maxi))
        {
             $fichier = strtr($fichier, 
                  'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
                  'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
             $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
             if(move_uploaded_file($_FILES['AddPhotos']['tmp_name'][$x], $destin . $fichier))
             {
                  $validAddPhotos = 'Success!';
             }
             else
             {
                  $errorAddPhotos = 'Wrong';
             }
        }           
        }
    }

echo $validAddPhotos;
echo $errorAddPhotos

我的代码看起来不错,但我无法上传我的文件...

错误:我的文件处于“if(!in_array($extension, $extensions))”状态。

能否请你帮忙 ?

谢谢。

4

1 回答 1

0

我认为在测试图像类型和文件大小时,您应该使用此逻辑比您的逻辑更有效。此外,您可以使用您想要的文件名来自定义它:)

多个上传图片功能php?

于 2013-02-21T18:23:59.997 回答