2012-01-13 2 views
-1

У меня проблема с загрузкой изображения на PHP.Загрузка изображения принимает предыдущий файл temp для загрузки в 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 это переменная, которая используется для получения статуса.

+0

Невозможно увидеть проблема в вышеприведенном коде. Возможно, более подходящий код поможет. – Rannnn

ответ

2

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

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

$_FILES = array(); 

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

+0

Я попробовал. но решение найдено. –

Смежные вопросы