2012-01-13 53 views
-1

这里我遇到了使用PHP上传图片的问题。图片上传需要先前的临时文件以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 2012-01-24 03:03:16

回答

2

听起来像你正在使用某种AJAX来调用此函数。

您可能需要找到一种方法来重置这个函数结束的$ _FILES数组...也许像这样将有助于:

$_FILES = array(); 

否则,因为没有(明显)页文件上传后发生刷新(正如你所提到的)我在考虑$ _FILES变量没有被自然重置的机会(如果你没有在这里使用AJAX会发生这种情况。)

+0

我尝试过。但找到了解决方法。 – 2012-01-25 05:55:19