Загрузка изображения занимает предыдущий временный файл для загрузки в PHP - PullRequest
0 голосов
/ 13 января 2012

Здесь у меня проблема с загрузкой изображения в PHP.

Проблема в том, что при первой загрузке файла изображения он работает нормально.Но когда я пытаюсь загрузить файл второй раз без обновления страницы, он берет имя первого изображения и загружает его.

В чем проблема и как ее можно решить?

$name = $_FILES['ImageFile']['name'];
$size = $_FILES['ImageFile']['size'];
$tmp = $_FILES['ImageFile']['tmp_name'];

$path = "public/www/uploads/";
        $valid_formats = array("jpg", "png", "gif", "bmp");
        $response = '';
        if(strlen($name)) {

            list($txt, $ext) = explode(".", $name);
            if(in_array($ext,$valid_formats)) {

                if($size<(1024*1024)) {

                    $actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext;
                    if(move_uploaded_file($tmp, $path.$actual_image_name)) {

                                                $response = "<img src='public/www/uploads/".$actual_image_name."?parm=".time()."' class='preview'>";

                    } else { 
                        $response = "failed";
                    }
                } else { 
                    $response = "Image file size max 1 MB";                 
                }
            } else {
                $response = "Invalid file format..";    
            }
        } else {
            $response = "Please select image..!";
        }

Здесь, $response - это переменная, используемая для получения статуса.

1 Ответ

2 голосов
/ 25 января 2012

Похоже, вы используете какой-то AJAX для вызова этой функции.

Возможно, вам понадобится найти способ сброса массива $ _FILES в конце этой функции ... может быть, что-то вроде этого поможет:

$_FILES = array();

В противном случае, поскольку после загрузки файла (явного) обновления страницы не происходит (как вы уже сказали), я думаю, что переменная $ _FILES не имеет шансов на естественный сброс (как было бы, если бы вы не используя AJAX здесь.)

...