这里我遇到了用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 :(得分:2)
听起来你正在使用某种AJAX来调用这个函数。
您可能需要找到一种方法来重置此函数末尾的$ _FILES数组...也许这样的事情会有所帮助:
$_FILES = array();
否则,因为文件上传后没有(明显的)页面刷新(正如你所提到的),我认为$ _FILES变量没有被自然重置的可能性(如果你不是这样的话就会发生)在这里使用AJAX。)