Качване на снимки в база данни

lyki

Registered
Здравейте.Наложи ми се да направя една база данни в която трябва да се качват снимки обаче не знам как става,ако може да ми обясните :D
П.П искам да има бутонче избор и да можеш да я избереш от компютъра .
 

nom3r1

Registered
Снимките се качват в папка/директория/, след което им се записва името в базата от данни.
 

xanoc

Registered
Лесно е, правиш Upload форма,която да е само за снимки със всякакви формати (ако така искаш) и да ти се качват в някаква директория (примерно images) , а в базата данни да ти записва линкът към нея. Друг начин е да намериш upload форма от тук или другаде и да направиш останалото
А ако правилно съм те разбрал, за избора трябва също да ти се записва в базата данни съответната снимка, която е избрана.
 

eddyy93

Registered
Ето г/д как трябва да ти изглежда формата.

HTML:
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>

Ето ти линк от източника: http://www.tizag.com/phpT/fileupload.php

Надолу в страницата има обяснения как да преработиш заявката от формата с php.
 

nom3r1

Registered
Пробвай така:
PHP:
<?php
error_reporting(E_ALL);
ini_set("display_errors", true);
if(isSet($_POST['submit'])) {
	if(isSet($_POST['image_file'])) {
		$image_file = $_POST['image_file'];
	} else {
		$image_file = "";
	}
	$path = "images/";
	if(!is_dir("$path")) {
		echo "ГРЕШКА: Директорията не съществува.";
	} else {
		if (!is_writeable("$path")){
			echo "ГРЕШКА: Промени правомощията на папката.";
		} else {
			if (!is_uploaded_file($_FILES['image_file']['tmp_name'])) {
				echo "Файла не е избран.<br />";
			} else {
				$name_pic = $_FILES['image_file']['name'];
				$ext = strtolower(substr(strrchr($name_pic, "."), 1));
				$allow = array("jpg", "jpeg", "JPG", "JPEG", "png", "gif");
				$mimetypes = array(
					'image/jpeg',
					'image/jpg',
					'image/pjpeg',
					'image/gif',
					'image/png'
				);
				$uptype = mime_content_type($_FILES['image_file']['tmp_name']);
				if (in_array($ext, $allow)){
					if (in_array($uptype, $mimetypes)){
						$datename = date("YmdHis");
						$rand = rand(0,1000);
						$md5  = md5("$datename$rand");
						$new_file_name = "{$md5}.{$ext}";
						$move_file = move_uploaded_file($_FILES['image_file']['tmp_name'], $path.$new_file_name);
						if($move_file) {
							echo 'Снимката е успешно качена.';
							$time = time();
							mysql_query("INSERT INTO `table` (`name`, `date`) VALUES ('{$new_file_name}', '{$time}');")or die(mysql_error());
						} else {
							echo "Възникна грешка при качването, моля опитайте по-късно.";
						}
					} else {
						echo "ГРЕШКА: Формата на файла, които се опитваш да качиш е забранен.";
					}
				} else {
					echo "ГРЕШКА: Формата на файла, които се опитваш да качиш е забранен.";
				}
			}
		}
	}
} else {
	echo "<form method=\"post\" enctype=\"multipart/form-data\">
		<input name=\"image_file\" type=\"file\">
		<input type=\"submit\" name=\"submit\" value=\"Давай!\" />
	</form>";
}
?>

Само си създай таблицата с колони - id | name | date

После си извеждай резултата със примерна заявка..
PHP:
$query = mysql_query("SELECT * FROM `table` ORDER BY `id`;")or die(mysql_error());
if(mysql_num_rows($query)) {
while($row = mysql_fetch_object($query)) {
echo "<img src=\"images/{$row->name}\" alt=\"\" /><br />качена на: {$row->date}<br /><br />";
}
} else {
echo "няма добавени снимки";
}

Директорията, която трябва да създадеш е: images/ задай и права: 777, за да може да се качват снимките.
П.П. Не съм тествал дали бачка.
 

Горе