Решение за upload

C++ JAVA
Post Reply
kini
Нов
Нов
Posts: 149
Joined: Sat May 01, 2010 10:36 am

Решение за upload

Post by kini » Sun Sep 16, 2018 2:29 pm

Здравейте,

Имам нужда от решение свързано със скрипт, за upload на изображения..
Искам да знам, как бих могъл да сложа default изображение, ако не е посочено такова във формата? :idea:

Скрипта е следния:

Code: Select all

if($_SERVER["REQUEST_METHOD"] == "POST"){
	
	
 				$image = $_FILES["file"]["name"];
				$uploadedfile = $_FILES['file']['tmp_name'];
				
				
					if ($image){
 						$filename = stripslashes($_FILES['file']['name']);
 	
  						$extension = getExtension($filename);
 						$extension = strtolower($extension);
		
		 					if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")){
 								$change = 'Непозволен формат!';
 								$errors = 1;
							} else {
								$size=filesize($_FILES['file']['tmp_name']);
									
									if ($size > MAX_FILE_SIZE*1024){
										$change = 'Снимката е прекалено голяма!';
										$errors = 1;
									}


									if($extension=="jpg" || $extension=="jpeg" ){
										$uploadedfile = $_FILES['file']['tmp_name'];
										$src = imagecreatefromjpeg($uploadedfile);

									} else if($extension=="png"){
										$uploadedfile = $_FILES['file']['tmp_name'];
										$src = imagecreatefrompng($uploadedfile);
									} else {
										$src = imagecreatefromgif($uploadedfile);
									}

								

								list($width,$height)=getimagesize($uploadedfile);

								$newwidth=620;
								$newheight=($height/$width)*$newwidth;
								$tmp=imagecreatetruecolor($newwidth,$newheight);


								$newwidth1=180;
								$newheight1=($height/$width)*$newwidth1;
								$tmp1=imagecreatetruecolor($newwidth1,$newheight1);

								$newwidth2=50;
								$newheight2=($height/$width)*$newwidth2;
								$tmp2=imagecreatetruecolor($newwidth2,$newheight2);

								imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
								imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height);
								imagecopyresampled($tmp2,$src,0,0,0,0,$newwidth2,$newheight2,$width,$height);
								
								
								$n = strtolower($compare['id'])."_".mktime().".".$extension;
																
								$filename = "uploads/".$n;
								$filename1 = "uploads/small_".$n;
								$filename2 = "uploads/small_thumb_".$n;

								imagejpeg($tmp,$filename,100);
								imagejpeg($tmp1,$filename1,100);
								imagejpeg($tmp2,$filename2,100);

								imagedestroy($src);
								imagedestroy($tmp);
								imagedestroy($tmp1);
								imagedestroy($tmp2);
							}
					}
			}

User avatar
anonimen
Web-tourist
Web-tourist
Posts: 1574
Joined: Mon Jun 11, 2012 6:07 pm
Answers: 163
Location: Parse error: unexpected "}" in /home/index.php on line 26

Post by anonimen » Mon Sep 17, 2018 9:38 am

Вместо изкуствено да 'качваш' default изображение (то вече си е качено?), по-добре в кода за извеждането на изображението да покажеш това по подразбиране, в случай, че не е качено от потребителя.

Иначе за всеки потребител ще държиш отделно копие на една и съща картинка - няма нужда.

Друг проблем, който ще си решиш по този начин, е че ще можеш лесно да смениш картинката по подразбиране, ако решиш. Иначе на всеки потребител ще трябва по отделно да проверяваш дали не го използва, и да го сменяш ръчно 1 по 1. А и пак няма да знаеш дали потребителят е качил съответното изображение, или му е било зададено като defaultово.

Post Reply