doufan3408 2017-10-24 06:55
浏览 24
已采纳

当我选择许多图像时,Php多图像上传失败

I use this code below, to upload and resize multiple images.

If i select about 10-20 image, everything works fine, but if i select 50 or more images, nothing happens, the page just reloads after a few seconds.

The code has some problem, or the max file size is limited in the ini file or server config?

enter image description here

enter image description here

if(isset($_POST['submit']))
{
    if(isset($_FILES['gallery']))
    {
        foreach($_FILES['gallery']["name"] AS $key=>$file)
        {
            if($_FILES['gallery']['size'][$key]  != 0 )
            {
                $ThumbSquareSize        = $gallery_thumb_size;
                $BigImageMaxSize        = $gallery_big_size;
                $ThumbPrefix            = "th-";
                $DestinationDirectory   = '../images/gallery/';
                $Quality                = $imgQuality;
                if(!is_uploaded_file($_FILES['gallery']['tmp_name'][$key]))
                {
                    $error[] = "Elképzelhető, hogy nem választott ki fényképet.";
                }

                $RandomNumber   = $id.'-'.rand(0, 99999999);

                $ImageName      = str_replace(' ','-',strtolower($_FILES['gallery']['name'][$key]));
                $ImageSize      = $_FILES['gallery']['size'][$key] ;
                $TempSrc        =   $_FILES['gallery']['tmp_name'][$key];
                $ImageType      =   $_FILES['gallery']['type'][$key];
                switch(strtolower($ImageType))
                {
                    case 'image/png':
                        $CreatedImage =  imagecreatefrompng($_FILES['gallery']['tmp_name'][$key] );
                        break;
                    case 'image/gif':
                        $CreatedImage =  imagecreatefromgif($_FILES['gallery']['tmp_name'][$key]);
                        break;
                    case 'image/jpeg':
                    case 'image/pjpeg':
                        $CreatedImage = imagecreatefromjpeg(  $_FILES['gallery']['tmp_name'][$key]);
                        break;
                    default:
                    $error[] = "Nem támogatott fájlformátum.";
                }
                list($CurWidth,$CurHeight)=getimagesize($TempSrc);
                $ImageExt = substr($ImageName, strrpos($ImageName, '.'));
                $ImageExt = str_replace('.','',$ImageExt);
                $ImageName      = preg_replace("/\\.[^.\\s]{3,4}$/", "", $ImageName);
                $NewImageName = $ImageName.'-'.$RandomNumber.'.'.$ImageExt;
                $thumb_DestRandImageName    = $DestinationDirectory.$ThumbPrefix.$NewImageName;
                $DestRandImageName          = $DestinationDirectory.$NewImageName;
                if(!resizeImage($CurWidth,$CurHeight,$BigImageMaxSize,$DestRandImageName,$CreatedImage,$Quality,$ImageType))
                {
                    $error[] = "A fénykép átméretezése nem sikerült.";

                }
                if(!cropImage($CurWidth,$CurHeight,$ThumbSquareSize,$thumb_DestRandImageName,$CreatedImage,$Quality,$ImageType))
                {
                    $error[] = "Nem sikerült a bélyegkép készítése.";
                }

                //$gallery_text = mysqli_real_escape_string($kapcs,  $_POST["images_alt"][ $key ] );
                $gallery_text = "";
                $gallery_thumb = basename( $thumb_DestRandImageName );
                $gallery_big = basename($DestRandImageName);
                $gallery_insert = "INSERT INTO gallery_item SET gallery_item_nev = '$gallery_text', gallery_item_thumb = '$gallery_thumb', gallery_item_big = '$gallery_big', gallery_id = '$id'";
                mysqli_query($kapcs , $gallery_insert ) or die( mysqli_error());
                header("Location: ".$host."/".$admin_folder."/galeria-szerkesztes.php?id=".$id."&new=1");
            }
        }
    }
}
  • 写回答

2条回答 默认 最新

  • duanjiao6730 2017-10-24 08:07
    关注

    Update this settings in your php.ini

    memory_limit = 256M
    upload_max_size = 64M
    post_max_size = 64M
    upload_max_filesize = 64M
    max_execution_time = 300
    max_input_time = 1000
    

    and then restart your server, check for updated changes in php.ini through browser and then upload images, if again you getting issue then increse this values to larger.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?