چگونه فایل تصویری در PHP آپلود و در پایگاه داده ذخیره کنیم

چگونه فایل تصویری در PHP آپلود و در پایگاه داده ذخیره کنیم

چگونه فایل تصویری در PHP آپلود و در پایگاه داده ذخیره کنیم – بارگذاری تصاویر / فیلم ها در دیتابیس و نمایش آن با استفاده از PHP روش بارگذاری تصویر در دیتابیس و دریافت آن از پایگاه داده است. با استفاده از کد های PHP ، کاربر تصویر یا فیلم هایی را که با اطمینان به دیتابیس وارد می کند و با دریافت این تصاویر از پایگاه داده می بایست تصاویر در مکان خاصی ذخیره شود.

اگر هرکدام از وب سایتها دارای قابلیت بارگذاری تصاویر / فیلم ها با جزئیات هستند ، با استفاده از این کد تصویر را در بانک اطلاعاتی شما بارگذاری می کند . و با استفاده از این کد تصویری که آپلود شده باشد، در جایی ذخیره می شود که شما آن مکان را در سیستم مشخص کرده باشید .

ابتدا با استفاده از phpMyAdmin دیتابیس را روی سرور XAMPP / WAMP بسازید و نام بانک اطلاعاتی را photos و نام جدول image قرار دهید . جدول شامل دو فیلد است:

  • id
    • int – 11
  • Filename
    • varchar – 100

id باید Auto incremented(AI)باشد. پایگاه image در زیر نشان داده شده است:

چگونه فایل تصویری در PHP آپلود و در پایگاه داده ذخیره کنیم - بخش 1

برنامه: اکنون ، ما یک فرم برای بارگذاری فایل های تصاویر / فیلم ها ایجاد خواهیم کرد.

کد HTML:

<!DOCTYPE html> 
<html> 

<head> 
    <title>Image Upload</title> 
    <link rel="stylesheet"
          type="text/css"
          href="style.css" /> 
</head> 

<body> 
    <div id="content"> 

        <form method="POST"
              action=""
              enctype="multipart/form-data"> 
            <input type="file"
                   name="uploadfile"
                   value="" /> 

            <div> 
                <button type="submit"
                        name="upload"> 
                  UPLOAD 
                </button> 
            </div> 
        </form> 
    </div> 
</body> 

</html> 


کد CSS: برای زیبایی و نمایش اجزای فرم

#content{ 
    width: 50%; 
    margin: 20px auto; 
    border: 1px solid #cbcbcb; 
} 
form{ 
    width: 50%; 
    margin: 20px auto; 
} 
form div{ 
    margin-top: 5px; 
} 
#img_div{ 
    width: 80%; 
    padding: 5px; 
    margin: 15px auto; 
    border: 1px solid #cbcbcb; 
} 
#img_div:after{ 
    content: ""; 
    display: block; 
    clear: both; 
} 
img{ 
    float: left; 
    margin: 5px; 
    width: 300px; 
    height: 140px; 
} 


می توانید کد فوق را کپی کرده و مستقیماً آن را در کد اصلی درج کنید یا پیوندی مشابه با کد HTML ایجاد کنید و با کد اصلی که در زیر آورده شده است وصل شود. همانطور که گفته شد اگر فایل css را پیوند دهید ، باید پرونده دیگری با فرمت .css ایجاد کنید و آن را در محلی که فایل اصلی ذخیره می شود ذخیره کنید. فرم ایجاد شده به کمک روش POST و داده های چند بخشی enctype=”multipart/form-data که پرونده ها را رمزگذاری می کند و به شما امکان ارسال از طریق پست را می دهد.

اکنون ما برای انتقال تصویر از هر پوشه سیستم در یک پوشه خاص که به آن اشاره کرده اید ، روی کد PHP کار می کنیم و آن را به عنوان دایرکتوری در دیتابیس ذخیره می کنیم.

کد PHP: کد PHP برای تصاویر در حال بارگذاری است ، نام پرونده با index.php ذخیره می شود ، می توانید با نام دیگری نیز مطابق دلخواه خود ذخیره کنید.

<?php 
error_reporting(0); 
?> 
<?php 
  $msg = ""; 

  // If upload button is clicked ... 
  if (isset($_POST['upload'])) { 

    $filename = $_FILES["uploadfile"]["name"]; 
    $tempname = $_FILES["uploadfile"]["tmp_name"];     
        $folder = "image/".$filename; 

    $db = mysqli_connect("localhost", "root", "", "photos"); 

        // Get all the submitted data from the form 
        $sql = "INSERT INTO image (filename) VALUES ('$filename')"; 

        // Execute query 
        mysqli_query($db, $sql); 

        // Now let's move the uploaded image into the folder: image 
        if (move_uploaded_file($tempname, $folder))  { 
            $msg = "Image uploaded successfully"; 
        }else{ 
            $msg = "Failed to upload image"; 
      } 
  } 
  $result = mysqli_query($db, "SELECT * FROM image"); 
?> 


توضیح: موارد زیر شرح کد PHP است که :

  • error_reporting(0) است برای گرفتن 0 خطا در حالی که کد پی اچ پی در حال اجرا است.
  • _files$ پشت صحنه کار می کند. برای بارگذاری پرونده ها از طریق روش HTTP POST و حفظ صفات فایلها استفاده می شود.
  • filename$ نامی است که برای شناسایی منحصر به فرد یک فایل کامپیوتری ذخیره شده در یک سیستم فایل استفاده می شود.
  •  tempname$ برای کپی کردن نام اصلی فایلی که در پایگاه داده بارگذاری می شود به عنوان نام موقت در جایی که تصویر پس از بارگذاری در آن ذخیره می شود ، استفاده می شود.
  • folder$ مسیر تصویر بارگذاری شده را در پایگاه داده به پوشه ای که می خواهید در آن ذخیره شود ، تعریف می کند. “تصویر /” نام پوشه که در آن تصویر است پس از آپلود ذخیره شود. و filename$  برای واکشی یا بارگذاری پرونده استفاده می شود.
  • db$ ، خط اصلی برای هر کد PHP برای اتصال به پایگاه داده است.
  • sql$ برای درج تصویر در بانک اطلاعاتینام جدول image در نام خانوادگی متغیر استفاده شده است.
  • mysqli_query تابعی برای اجرای query از db$ و sql$ است.
  • حال ، اجازه دهید تصویر بارگذاری شده را درون پوشه ای که به عنوان تصویر نامگذاری شده است ، منتقل کنیم. پوشه ای به نام image در سرور WAMP یا XAMPP ذخیره می شود که در درایو C در پوشه www قرار دارد.
  • result$ برای دریافت تصویر از پایگاه داده استفاده می شود.

ترکیبی از کدهای فوق: و کد نهایی بارگذاری تصویر در MySQL با استفاده از PHP به شرح زیر است.

  • برنامه: نام پرونده: index.php این پرونده ترکیبی از کد HTML و PHP است.


<?php
error_reporting(0); 
?> 
<?php
  $msg = ""; 

  // If upload button is clicked ... 
  if (isset($_POST['upload'])) { 

    $filename = $_FILES["uploadfile"]["name"]; 
    $tempname = $_FILES["uploadfile"]["tmp_name"];     
        $folder = "image/".$filename; 

    $db = mysqli_connect("localhost", "root", "", "photos"); 

        // Get all the submitted data from the form 
        $sql = "INSERT INTO image (filename) VALUES ('$filename')"; 

        // Execute query 
        mysqli_query($db, $sql); 

        // Now let's move the uploaded image into the folder: image 
        if (move_uploaded_file($tempname, $folder))  { 
            $msg = "Image uploaded successfully"; 
        }else{ 
            $msg = "Failed to upload image"; 
      } 
  } 
  $result = mysqli_query($db, "SELECT * FROM image"); 
?> 

<!DOCTYPE html> 
<html> 
<head> 
<title>Image Upload</title> 
<link rel="stylesheet" type= "text/css" href ="style.css"/> 
<div id="content"> 

  <form method="POST" action="" enctype="multipart/form-data"> 
      <input type="file" name="uploadfile" value=""/> 

      <div> 
          <button type="submit" name="upload">UPLOAD</button> 
        </div> 
  </form> 
</div> 
</body> 
</html> 

  • خروجی: در آخر ، شما باید تصاویر ، فیلم ها با کمتر از 100 مگابایت را بارگذاری کنید.چگونه فایل تصویری در PHP آپلود و در پایگاه داده ذخیره کنیم - بخش 2

نتیجه گیری: تصویر بارگذاری شده در پایگاه داده با کد PHP ساده است و برای اهداف مختلف استفاده می شود. کد به بارگذاری تصویر کمک می کند و سپس تصویر را در پایگاه داده بارگذاری می کند و می تواند در یک پوشه دیگر نمایش داده شود.

یک نکته را باید توجه داشته باشید که هنگام اجرای این برنامه باید این احتمال وجود داشته باشد که تصویر بیشتر از 2 مگابایت بارگذاری نشود زیرا برنامه PHP مقدار پیش فرض بارگذاری تصویر 2 مگابایت را تعیین کرده و post تصویر را 8 در نظر می گیرد . برای بیش از اندازه بارگذاری تصویر باید مراحل زیر را دنبال کنید:

ابتدا درایو C را باز کنید ، سپس پوشه WAMP یا سرور XAMPP را باز کنید.

سپس پوشه bin را باز کنید.

پوشه نسخه PHP (پوشه PHP 5.6.31) را باز کنید (توجه داشته باشید که در صورت مشاهده نسخه دیگری از پی اچ پی ، باید این موارد را باز کنید)

سپس php.ini را جستجو کنید . آن را باز کرده و سپس آن دو متغیر را جستجو کرده و تغییر دهید. متغیرها عبارتند از:

upload_max_size = 100M
post_max_filesize = 100M

تغییرات را ذخیره کنید و سپس مسیر زیر را باز کنید

C:\wamp64\bin\apache\apache2.4.27\bin 

البته apache2.4.27 ممکن است برای شما فرق داشته باشد .

و php.ini را جستجو کنید . همان مواردی که در بالا انجام شد را انجام دهید .

سرور WAMP یا XAMPP را مجدداً راه اندازی کرده و کد را اجرا کنید.


چگونه فایل تصویری در PHP آپلود و در پایگاه داده ذخیره کنیم

ارسال نظر