У меня уже есть идея, как создать базу данных MySQL для пользовательской галереи … Но у меня есть несколько вопросов:
Предпосылка: я не хочу сохранять фотографии в базе данных для повышения производительности
Я уже пытался сохранить фотографии в базе данных, но затем сайт (после загрузки большого количества изображений) становится слишком медленным
Спасибо всем за ваши будущие ответы
Хорошего дня
Лука
Вы можете использовать базовый ввод файла в HTML и функцию php move_uploaded_file , пример:
HTML:
<form method="post" enctype="multipart/form-data">
<input type="file" name="photo"/>
</form>
PHP:
$file= $_FILES['photo'];
if(move_uploaded_file($file['tmp_name'], "/path/to/a/directory")){
echo "yeah";
}
Если каталог / не существует, он создаст его для вас.
вот функция, которую я использовал для загрузки изображений JPEG с небольшим размером:
function make_thumb($src, $dest, $desired_width) {
/* read the source image */
$source_image = imagecreatefromjpeg($src);
$width = imagesx($source_image);
$height = imagesy($source_image);
/* find the "desired height" of this thumbnail, relative to the desired width */
$desired_height = floor($height * ($desired_width / $width));
/* create a new, "virtual" image */
$virtual_image = imagecreatetruecolor($desired_width, $desired_height);
/* copy source image at a resized size */
imagecopyresampled($virtual_image, $source_image, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height);
/* create the physical thumbnail image to its destination with 100% quality*/
imagejpeg($virtual_image, $dest,100);
}$result=mysql_query("SELECT * FROM photos");
while($row=mysql_fetch_array($result)){
$photoname = $row['imgTitle'];
$source = "../images/big/".$photoname;
$destination = "../images/thumb/thumb_".$photoname ."";
$width = "200";
make_thumb($source,$destination,$width);
}