Загрузка нескольких изображений для одного товара

Emmalet

Пользователь
Регистрация
19.06.14
Сообщения
1
Реакции
0
Баллы
1
Привет народ,
Я скачал скрипт для листинга недвижимости. Появляется только последняя загруженная фотография. Может ли кто-нибудь посмотреть код и увидеть, есть ли что-то не так. Спасибо вам всем.

Код:
<?php
$mess_err = '';
if($_SERVER['REQUEST_METHOD']=="POST")
{ if(empty($_POST['txtName'])){ $mess_err .="+ ".$messhousename."<br />"; } else if(strlen($_POST['txtName'])<6){ $mess_err .= "+ ".$messlenHN."<br />"; } else $mess_err .= ''; if(intval($_POST['selectTinhTP'])==0){ $mess_err .= "+ ".$messcity."<br/>"; } else if(intval($_POST['selectDistrict'])==0){ $mess_err .= "+ ".$messdistrict."<br/>"; } if(empty($_POST['txtAddress'])){ $mess_err .= "+ ".$messaddress."<br/>"; } else if(strlen($_POST['txtAddress'])<6){ $mess_err .= "+".$messlenaddress."<br/>"; } if(($_POST['txtLivingsize']=="")){ $mess_err .= "+ ".$messlivingsize."<br/>"; } if(empty($_POST['captcha'])){ $mess_err .= "+ ".$messcaptcha."<br>"; } else if($_POST['captcha'] != $_SESSION["security_code"]){ $mess_err .= "+ ".$messincorrectcaptcha; } $ten_hinh=$_FILES["imageFile"]['name']; $imgtype=$_FILES['imageFile']['type']; $imgsize=$_FILES['imageFile']['size']; if($ten_hinh!=""){ if ( (($imgtype == "image/gif")|| ($imgtype == "image/jpeg")|| ($imgtype == "image/jpg")|| ($imgtype == "image/pjpeg")|| ($imgtype == "image/png"))) { if ($_FILES["imageFile"]["error"] > 0) $mess_err .= "+ ".$imageinvalid."<br>"; else { if($imgsize>1400000) $mess_err .="+ ".$sizeimage."<br />"; } } else $mess_err .= "+ ".$imageinvalid."<br />"; }
}
if(!isset($mess_err))$mess_err=" ";
if(!isset($mess_success)) $mess_success=" ";
if(empty($mess_err)&& isset($_POST['sbAddHouse'])) { Connect_Database(); include('SimpleImage.php'); if(!isset($_POST['chkIncludeTax']))$_POST['chkIncludeTax'] =0; if(!isset($_POST['chkCooling']))$_POST['chkCooling'] =0; if(!isset($_POST['chkLaundry']))$_POST['chkLaundry'] =0; if(!isset($_POST['chkSwimming']))$_POST['chkSwimming'] =0; if(!isset($_POST['chkGarden']))$_POST['chkGarden'] =0; if(!isset($_POST['chkYard']))$_POST['chkYard'] =0; if(!isset($_POST['chkHeating']))$_POST['chkHeating'] =0; $noi_dung1=strip_tags($_POST['txtAmenity']); $noi_dung1=str_replace("<","&lt;",$noi_dung1); $noi_dung1=str_replace(">","&gt;",$noi_dung1); $noi_dung1=str_replace("'","&apos;",$noi_dung1); $noi_dung1=str_replace('"',"&quot;",$noi_dung1); $noi_dung1=str_replace('<pre>',"",$noi_dung1); $noi_dung1=str_replace('</pre>',"",$noi_dung1); $noi_dung1=nl2br($noi_dung1); $Amenity=$noi_dung1; $noi_dung=strip_tags($_POST['txtDescription']); $noi_dung=str_replace("<","&lt;",$noi_dung); $noi_dung=str_replace(">","&gt;",$noi_dung); $noi_dung=str_replace("'","&apos;",$noi_dung); $noi_dung=str_replace('"',"&quot;",$noi_dung); $noi_dung=str_replace('<pre>',"",$noi_dung); $noi_dung=str_replace('</pre>',"",$noi_dung); $noi_dung=nl2br($noi_dung); $Description=$noi_dung; $now1=date("Y-m-d",time()+(14*60*60)); $query = "insert into houses(city_id, district_id, category_id, user_id, need_id, legal_id, direction_id, name, address, yearbuilt, description, created, lotsize, livingsize, price, includetax, mls, amentities, stories, floorcoverings, rooftype, bathroom, diningroom, bedroom, kitchen, livingroom, miscrooms, heating, cooling, water, sewer, laundry, parking, swimmingpool, garden, yardgrounds, handicapfeatures, status, views, contactname, contactemail, contactphone, contactmobile,latitude,longitude,fulladdress,unit) values(".intval($_POST['selectTinhTP']).", ".intval($_POST['selectDistrict']).",".intval($_POST['selectCate']).",".intval(0).", ".$_POST['selectNeed'].", ".$_POST['selectLegal'].", ".$_POST['selectDirection'].", '".mysql_real_escape_string($_POST['txtName'])."', '".mysql_real_escape_string($_POST['txtAddress'])."', '".mysql_real_escape_string($_POST['txtYearBuilt'])."', '".$Description."','".$now1."', ".intval($_POST['txtLotsize']).", ".$_POST['txtLivingsize'].", ".floatval($_POST['txtnewprice']).", ".$_POST['chkIncludeTax'].", '".mysql_real_escape_string($_POST['txtMLS'])."', '".$Amenity."', ".intval($_POST['txtNumBlock']).", '".mysql_real_escape_string($_POST['txtFloorCovering'])."', '".mysql_real_escape_string($_POST['txtRoofType'])."', ".intval($_POST['txtBathRoom']).", ".intval($_POST['txtDiningRoom']).", ".intval($_POST['txtBedRoom']).", ".intval($_POST['txtKitchen']).", ".intval($_POST['txtLivingRoom']).", '".intval($_POST['txtMiscRoom'])."','".intval($_POST['chkHeating'])."', ".intval($_POST['chkCooling']).", 0, 0, ".intval($_POST['chkLaundry']).", '".intval($_POST['txtParking'])."', ".intval($_POST['chkSwimming']).", ".intval($_POST['chkGarden']).", ".intval($_POST['chkYard']).", '', 0, 0, '".mysql_real_escape_string($_POST['fullname'])."', '".mysql_real_escape_string($_POST['txtemail'])."', '".mysql_real_escape_string($_POST['txtphone'])."', '".mysql_real_escape_string($_POST['txtmobile'])."','".mysql_real_escape_string($_POST['lat'])."','".mysql_real_escape_string($_POST['lng'])."','".mysql_real_escape_string($_POST['newaddress'])."','".$_POST['selectTime']."')"; if(QuerySQL($query)) {$mess_err="+ ".$postnewssuc;} else {echo "Error insert";$mess_success="";} if($ten_hinh!=""){ $newimgtype=substr($imgtype,6); $length = 8; $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $rndstr = ''; for ($p = 0; $p < $length; $p++) { $rndstr .= $characters[mt_rand(0, strlen($characters))]; } $newImagename=md5(date('m/d/Y h:i:s').$rndstr).".".$newimgtype; $newimage = new SimpleImage(); $newimage->load($_FILES['imageFile']['tmp_name']); $newimage->resize(660,400); $newimage->save("uploads/" .$newImagename); $sql ="INSERT INTO `imgs` (`house_id` ,`name`,`mainimg`,status) VALUES (".mysql_insert_id().",'$newImagename',1,0)"; $rs = QuerySQL($sql); } Close_Connect(); }
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="formAddHouse"onsubmit="return checkFormAddHouse();" enctype="multipart/form-data">
<input type="file" name="imageFile" id="imageFile" />
<input type="file" name="imageFile" id="imageFile" />
<input type="file" name="imageFile" id="imageFile" />
<input type="submit" value="<?php echo strtoupper($addhouse);?>" id="sbAddHouse" name="sbAddHouse" style="width:100px;" onclick="window.location.href='#here';" >
</form>
PHP:
Загрузка нескольких изображений для одного товара
 

Alice3

Пользователь
Регистрация
24.06.15
Сообщения
1
Реакции
0
Баллы
1
Большое спасибо. Я пробовал использовать разные имена для элемента ввода, как вы предлагали, но изображение вообще не загружалось. Не могли бы вы помочь, как foreach будет выглядеть в этом конкретном случае?
 

vano768

Пользователь
Регистрация
14.09.14
Сообщения
2
Реакции
0
Баллы
1
Имя поля, которое захватывает изображение, не является массивом, и оно одинаковое, поэтому вам нужно изменить его так, чтобы оно соответствовало одному из этих

Код:
<input type="file" name="imageFile1" id="imageFile" />
<input type="file" name="imageFile2" id="imageFile" />
<input type="file" name="imageFile3" id="imageFile" />

PHP: или
<input type="file" name="imageFile[]" id="imageFile" /> <input type="file" name="imageFile[]" id="imageFile" /> <input type="file" name="imageFile[]" id="imageFile" />
PHP: и тогда вам нужен foreach в строке 37, который заканчивается примерно в строке 111.
 

L.I.A

Пользователь
Регистрация
26.09.11
Сообщения
3
Реакции
0
Баллы
1
непроверено, но это должно помочь. Общий код, помещенный в функцию, нужно еще многое сделать, чтобы сделать его «элегантным», и за некоторыми из них я не смог уследить, но вы должны многому научиться, сравнивая мой код со своим.

Код:
<?php
function saveUploadedFile($counter, $file, $house_id){ $mess_err = []; $validTypes = ["image/gif", "image/jpeg", "image/jpg", "image/pjpeg", "image/png"]; $ten_hinh=$file['name']; $imgtype=$file['type']; $imgsize=$file['size']; if(empty($ten_hinh)){ return; } if ( !in_array($imgtype, $validTypes)) { if ($_FILES["imageFile"]["error"] > 0){ $mess_err[] = "+ {$imageinvalid}"; } elseif($imgsize>1400000) { $mess_err[] ="+ {$sizeimage}"; } else $mess_err[] = "+ {$imageinvalid}"; } else { $newimgtype=substr($imgtype,6); $newImagename = makeRandomFileName(8, $newimgtype); $newimage = new SimpleImage(); $newimage->load($file['tmp_name']); $newimage->resize(660,400); $newimage->save("uploads/" .$newImagename); $mainimg = ($k == 0)?1:0; $sql ="INSERT INTO `imgs` (`house_id` ,`name`,`mainimg`, `status`) VALUES ('{$house_id}','{$newImagename}',{$mainimg},0)"; $rs = QuerySQL($sql); } return $mess_err;
}
function makeRandomFileName($length, $fileType){ $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $rndstr = ''; for ($p = 0; $p < $length; $p++) { $rndstr .= $characters[mt_rand(0, strlen($characters))]; } $newImagename=md5(date('m/d/Y h:i:s').$rndstr).".".$fileType; return $newImagename;
}
include('SimpleImage.php');
$mess_err = $mess_success = [];
if($_SERVER['REQUEST_METHOD']=="POST")
{ if(empty($_POST['txtName'])){ $mess_err[] = $messhousename; } else if(strlen($_POST['txtName'])<6){ $mess_err[] = $messlenHN; } if(intval($_POST['selectTinhTP'])==0){ $mess_err[] = $messcity; } else if(intval($_POST['selectDistrict'])==0){ $mess_err[] = $messdistrict; } if(empty($_POST['txtAddress'])){ $mess_err[] = $messaddress; } else if(strlen($_POST['txtAddress'])<6){ $mess_err[] = $messlenaddress; } if(($_POST['txtLivingsize']=="")){ $mess_err[] = $messlivingsize; } if(empty($_POST['captcha'])){ $mess_err[] = $messcaptcha; } else if($_POST['captcha'] != $_SESSION["security_code"]){ $mess_err[] = $messincorrectcaptcha; } if(count($mess_err) == 0 && array_key_exists('sbAddHouse', $_POST){ Connect_Database(); if(!isset($_POST['chkIncludeTax']))$_POST['chkIncludeTax'] =0; if(!isset($_POST['chkCooling']))$_POST['chkCooling'] =0; if(!isset($_POST['chkLaundry']))$_POST['chkLaundry'] =0; if(!isset($_POST['chkSwimming']))$_POST['chkSwimming'] =0; if(!isset($_POST['chkGarden']))$_POST['chkGarden'] =0; if(!isset($_POST['chkYard']))$_POST['chkYard'] =0; if(!isset($_POST['chkHeating']))$_POST['chkHeating'] =0; $noi_dung1=strip_tags($_POST['txtAmenity']); $noi_dung1=str_replace("<","&lt;",$noi_dung1); $noi_dung1=str_replace(">","&gt;",$noi_dung1); $noi_dung1=str_replace("'","&apos;",$noi_dung1); $noi_dung1=str_replace('"',"&quot;",$noi_dung1); $noi_dung1=str_replace('<pre>',"",$noi_dung1); $noi_dung1=str_replace('</pre>',"",$noi_dung1); $noi_dung1=nl2br($noi_dung1); $Amenity=$noi_dung1; $noi_dung=strip_tags($_POST['txtDescription']); $noi_dung=str_replace("<","&lt;",$noi_dung); $noi_dung=str_replace(">","&gt;",$noi_dung); $noi_dung=str_replace("'","&apos;",$noi_dung); $noi_dung=str_replace('"',"&quot;",$noi_dung); $noi_dung=str_replace('<pre>',"",$noi_dung); $noi_dung=str_replace('</pre>',"",$noi_dung); $noi_dung=nl2br($noi_dung); $Description=$noi_dung; $now1=date("Y-m-d",time()+(14*60*60)); $query = "insert into houses(city_id, district_id, category_id, user_id, need_id, legal_id, direction_id, name, address, yearbuilt, description, created, lotsize, livingsize, price, includetax, mls, amentities, stories, floorcoverings, rooftype, bathroom, diningroom, bedroom, kitchen, livingroom, miscrooms, heating, cooling, water, sewer, laundry, parking, swimmingpool, garden, yardgrounds, handicapfeatures, status, views, contactname, contactemail, contactphone, contactmobile,latitude,longitude,fulladdress,unit) values(".intval($_POST['selectTinhTP']).", ".intval($_POST['selectDistrict']).",".intval($_POST['selectCate']).",".intval(0).", ".$_POST['selectNeed'].", ".$_POST['selectLegal'].", ".$_POST['selectDirection'].", '".mysql_real_escape_string($_POST['txtName'])."', '".mysql_real_escape_string($_POST['txtAddress'])."', '".mysql_real_escape_string($_POST['txtYearBuilt'])."', '".$Description."','".$now1."', ".intval($_POST['txtLotsize']).", ".$_POST['txtLivingsize'].", ".floatval($_POST['txtnewprice']).", ".$_POST['chkIncludeTax'].", '".mysql_real_escape_string($_POST['txtMLS'])."', '".$Amenity."', ".intval($_POST['txtNumBlock']).", '".mysql_real_escape_string($_POST['txtFloorCovering'])."', '".mysql_real_escape_string($_POST['txtRoofType'])."', ".intval($_POST['txtBathRoom']).", ".intval($_POST['txtDiningRoom']).", ".intval($_POST['txtBedRoom']).", ".intval($_POST['txtKitchen']).", ".intval($_POST['txtLivingRoom']).", '".intval($_POST['txtMiscRoom'])."','".intval($_POST['chkHeating'])."', ".intval($_POST['chkCooling']).", 0, 0, ".intval($_POST['chkLaundry']).", '".intval($_POST['txtParking'])."', ".intval($_POST['chkSwimming']).", ".intval($_POST['chkGarden']).", ".intval($_POST['chkYard']).", '', 0, 0, '".mysql_real_escape_string($_POST['fullname'])."', '".mysql_real_escape_string($_POST['txtemail'])."', '".mysql_real_escape_string($_POST['txtphone'])."', '".mysql_real_escape_string($_POST['txtmobile'])."','".mysql_real_escape_string($_POST['lat'])."','".mysql_real_escape_string($_POST['lng'])."','".mysql_real_escape_string($_POST['newaddress'])."','".$_POST['selectTime']."')"; if(QuerySQL($query)) { $mess_err[] = $postnewssuc; } else { echo "Error insert"; } $house_id = mysql_insert_id() foreach($_FILES['imageFile' as $k => $file]){ $mess_err[] = saveUploadedFile($k, $file, $house_id); } Close_Connect(); }
if (count($mess_err)) {
echo '+ '. implode('<br/>+ ', $mess_err);
} ?> <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="formAddHouse"onsubmit="return checkFormAddHouse();" enctype="multipart/form-data"> <input type="file" name="imageFile[]" id="imageFile" /> <input type="file" name="imageFile[]" id="imageFile" /> <input type="file" name="imageFile[]" id="imageFile" /> <input type="submit" value="<?php echo strtoupper($addhouse);?>" id="sbAddHouse" name="sbAddHouse" style="width:100px;" onclick="window.location.href='#here';" > </form>
PHP:
 
Сверху Снизу