PHP Многократная загрузка файлов и создание миниатюр, не входящих в каждый цикл - PullRequest
0 голосов
/ 13 февраля 2012

Вот то, что у меня есть, извиняюсь за длину, но это дает вам полную картину:

if(count($_FILES['file']['name'])) 
            {

            foreach ($_FILES['file']['name'] as $key => $file)
                {



            $add="../uploads/photogallery/".time().'_'.$file;

            $storefile = time().'_'.$file;

                             echo $storefile; // THIS WORKS

                if(move_uploaded_file ($_FILES['file']['tmp_name'][$key],$add))
                {

                                     // CODE IS NOT GETTING INTO THIS AREA,

                    //database insert here

                    //mysql_query ($query);

                    echo '<meta http-equiv="refresh" content="0;url=?VIEW=PHOTOADD&photo_added">';
                }
                else
                {
                    echo '<meta http-equiv="refresh" content="0;url=?VIEW=PHOTOADD&photo_not_added">';
                }

            ///////// Start the thumbnail generation//////////////

            $n_width=150;          // Fix the width of the thumb nail images
            $n_height=150;         // Fix the height of the thumb nail imaage

            $tsrc="../uploads/photogallery/thumbnail/".time().'_'.$file;

            if (!($_FILES['file']['type'][$key] =="image/pjpeg" || $_FILES['file']['type'][$key] == "image/gif" || $_FILES['file']['type'][$key] == "image/png") || ($_FILES["file"]["type"][$key] == "image/jpeg") && ($_FILES["file"]["size"][$key] < 2097152))
                {
                    echo '<meta http-equiv="refresh" content="0;url=?VIEW=PHOTOADD&photo_requirements_not_met">';
                }

            /////////////////////////////////////////////// Starting of GIF thumb nail creation///////////

            if (@$_FILES['file']['type'][$key] =="image/gif")
                {
                    $im=ImageCreateFromGIF($add);

                    $width=ImageSx($im);              // Original picture width is stored
                    $height=ImageSy($im);                  // Original picture height is stored

                    $newimage=imagecreatetruecolor($n_width,$n_height);

                    imageCopyResized($newimage,$im,0,0,0,0,$n_width,$n_height,$width,$height);

                    if (function_exists("imagegif")) 
                    {
                        Header("Content-type: image/gif");
                        ImageGIF($newimage,$tsrc);
                    }

                    elseif (function_exists("imagejpeg")) 
                    {
                        Header("Content-type: image/jpeg");
                        ImageJPEG($newimage,$tsrc);
                    }
                    elseif (function_exists("imagepng")) 
                    {
                        Header("Content-type: image/png");
                        ImagePNG($newimage,$tsrc);
                    }
                }

            ////////////// starting of JPG thumb nail creation//////////

            if ($_FILES['file']['type'][$key] == "image/pjpeg")
                {
                    $im=ImageCreateFromJPEG($add); 

                    $width=ImageSx($im);              // Original picture width is stored
                    $height=ImageSy($im);             // Original picture height is stored

                    $newimage=imagecreatetruecolor($n_width,$n_height);                 

                    imageCopyResized($newimage,$im,0,0,0,0,$n_width,$n_height,$width,$height);

                    ImageJpeg($newimage,$tsrc);
                }

            if ($_FILES['file']['type'][$key] == "image/png")
                {
                    $im=ImageCreateFromPNG($add); 

                    $width=ImageSx($im);              // Original picture width is stored
                    $height=ImageSy($im);             // Original picture height is stored

                    $newimage=imagecreatetruecolor($n_width,$n_height);                 

                    imageCopyResized($newimage,$im,0,0,0,0,$n_width,$n_height,$width,$height);

                    ImagePNG($newimage,$tsrc);
                }
            }
        }
        else
        {
            echo '<meta http-equiv="refresh" content="0;url=?VIEW=PHOTOADD&photo_requirements_not_met">';
        }

А вот HTML-часть формы:

<input class="input" name="file[]" type="file" id="file" multiple=""/>

Да, форма имеет правильный тип.Посмотрите мои комментарии в коде выше, где написано, что ЭТО РАБОТАЕТ, а КОД НЕ БУДЕТ ... и т. Д.Вот где моя проблема.Он попадает внутрь каждой части цикла, так как я могу отобразить $ storefile и получить правильное имя файла с отметкой времени, но он не попадет в часть if (move_uploaded_ ..) и перейдет к части невыполненных требований к фотографиям эха.

Любая помощь будет принята с благодарностью.Я не получаю никаких ошибок PHP или MySQL.

1 Ответ

2 голосов
/ 13 февраля 2012

используйте foreach ($_FILES['file']['name'] as $key => $file) как для цикла

$_FILES['file']['tmp_name'][$key] в условии if

для ссылка

Например, предположим, чтоимена файлов /home/test/review.html и /home/test/xwp.out представлены.В этом случае $ _FILES ['userfile'] ['name'] [0] будет содержать значение review.html, а $ _FILES ['userfile'] ['name'] 1 будет содержатьзначение xwp.out.Аналогично, $ _FILES ['userfile'] ['size'] [0] будет содержать размер файла review.html и т. Д.

$ _ FILES ['userfile'] ['name'] [0]$ _FILES ['userfile'] ['tmp_name'] [0], $ _FILES ['userfile'] ['size'] [0] и $ _FILES ['userfile'] ['type'] [0] являютсятакже установить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...