Каков наилучший способ хранения изображений на сервере с использованием MySQL BLOB или обычного сценария загрузки PHP?
<Тело>
Привет Рави Редди,
Благодаря A2A.
Я хотел бы предложить, и я практикую хранение изображения на моем сервере и сохранить его путь на сервере SQL. Это повысит производительность SQL-запросов. Если вы включите кэширование на сервере для файлов изображений, вы получите потрясающую производительность.
С Уважением,
Мохаммед Сиджас
Для хранения изображений на сервере рекомендуется хранить их на жестких дисках. Хранение изображения в базе данных в виде BLOB-объектов влияет на эффективность поисковых запросов SQL. По мере увеличения данных увеличивается нагрузка на сервер sql, что будет влиять на выполнение запросов. Лучшая идея - загрузить изображение с помощью PHP и сохранить путь к изображению на жестком диске в таблицах SQL, чтобы впоследствии можно было извлечь изображение с помощью этих путей, что избавит сервер SQL от большой нагрузки. Надеюсь, это дало вам идею.
Как загрузить изображение BLOB в базу данных Mysql, используя PHP, SQL и HTML
Код ниже можно использовать для вставки изображения в базу данных MySQL. Изображение сохраняется как блоб. Большой двоичный объект. После загрузки изображение также отображается с использованием HTML, PHP и SQL. Вам просто нужно изменить имя сервера, имя пользователя и пароль, остальное создается автоматически. (База данных, таблица). Если вы используете xampp, код должен находиться в папке, созданной внутри папки htdocs. Видео выше показывает все.
- <?php
- //This code shows how to save image im mysql database using php, sql and html.
- //The image is uploaded using php and sql.
- //It's a web-based application that can be accessed by using a browser.
- //This is for educational purposes only, Use it at your own risk.
- //Connect to server
- $servername = "localhost";
- $username = "root";
- $password = "";
- $conn = mysqli_connect($servername, $username, $password);
- if ($conn) {
- echo "Connected to server successfully";
- } else {
- die( "Failed To Connect to server ". mysqli_connect_error() );
- }
- $selectalreadycreateddatabase = mysqli_select_db($conn, "PhpMysqlDatabaseBlobImageUpload");
- if ($selectalreadycreateddatabase) {
- echo "<br /> Existing database selected successfully";
- } else {
- echo "<br /> Selected Database Not Found";
- $createNewDb = "CREATE DATABASE IF NOT EXISTS `PhpMysqlDatabaseBlobImageUpload`";
- if (mysqli_query($conn, $createNewDb)) {
- echo "<br />New Database Created Successfullly";
- $selectCreatedDatabase = mysqli_select_db($conn, "PhpMysqlDatabaseBlobImageUpload");
- if ($selectCreatedDatabase) {
- echo "<br />Created Database Selected Successfullly";
- // Creating new table
- $sqlcreatetable = "
- CREATE TABLE IF NOT EXISTS `imageuploadphpmysqlblob` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `name` varchar(100) NOT NULL,
- `image` longblob NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- ";
- if (mysqli_query($conn, $sqlcreatetable)) {
- echo "<br />New table Created";
- } else {
- echo "<br /> Unable to create new table.";
- }
- }
- } else {
- echo "Unable to create database";
- }
- }
- if (isset($_POST['submit'])) {
- if (getimagesize($_FILES['imagefile']['tmp_name']) == false) {
- echo "<br />Please Select An Image.";
- } else {
- //declare variables
- $image = $_FILES['imagefile']['tmp_name'];
- $name = $_FILES['imagefile']['name'];
- $image = base64_encode(file_get_contents(addslashes($image)));
- $sqlInsertimageintodb = "INSERT INTO `imageuploadphpmysqlblob`(`name`, `image`) VALUES ('$name','$image')";
- if (mysqli_query($conn, $sqlInsertimageintodb)) {
- echo "<br />Image uploaded successfully.";
- } else {
- echo "<br />Image Failed to upload.<br />";
- }
- }
- } else {
- # code...
- }
- //Retrieve image from database and display it on html webpage
- function displayImageFromDatabase(){
- //use global keyword to declare conn inside a function
- global $conn;
- $sqlselectimageFromDb = "SELECT * FROM `imageuploadphpmysqlblob` ";
- $dataFromDb = mysqli_query($conn, $sqlselectimageFromDb);
- while ($row = mysqli_fetch_assoc($dataFromDb)) {
- echo '<img height="250px" width="250px" src=data:image;base64,'.$row['image'].'/>';
- }
- }
- //calling the function to display image
- displayImageFromDatabase();
- //Finnaly close connection
- if (mysqli_close($conn)) {
- echo "<br />Connection Closed.......";
- }
- ?>
- <!DOCTYPE html>
- <html>
- <head>
- <title>How To upload BLOB Image To Mysql Database Using PHP,SQL And HTML.</title>
- </head>
- <body>
- <form action="" method="post" enctype="multipart/form-data">
- <input type="file" name="imagefile">
- <br />
- <input type="submit" name="submit" value="Upload">
- </form>
- </body>
- </html>
Другие полезные ресурсы:
https: //mauricemuteti2015.tumblr ...
Http: //mauricemutetingundi.blogs ...
https: //mauricemutetingundi.word ...



