نمایش نتایج 1 تا 2 از 2

نام تاپیک: ذخیره تصاویر در MySQL و نمایش آنها با PHP قسمت اول

  1. #1

    ذخیره تصاویر در MySQL و نمایش آنها با PHP قسمت اول

    سلام

    در این آموزش چگونگی ذخیره تصاویر دودویی (باینری) در بانک اطلاعاتی و نمایش آنها در PHP را خواهید آموخت

    در این قسمت فقط ذخیره تصاویر را می آموزید، در آینده قسمت دوم آن که نمایش تصاویر است را خواهم گفت

    چرا تصاویر را در بانک اطلاعاتی ذخیره کنیم؟
    ممکن است شما بخواهید در سایتتان بخشی برای ذخیره تصویر کاربر قرار دهید، یا فروشگاهی ایجاد میکنید که تعدادی فروشگاه در آن گسترش یافته باشند و بخواهید برای هر کدام یک لوگو قرار دهید یا تصاویر محصولات خود را در بانک اطلاعاتی داشته باشید.

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

    شما با تهیه یک نسخه پشتیبانی از بانک اطلاعاتی میتوانید تمام تصاویر را همراه داشته باشید

    برای شرع کار ابتدا باید یک بانک اطلاعاتی ایجاد کنید

    نحوه ی اتصال به MySQL را میتوانید از اینجا مشاهده کنید

    بعد از اتصال به بانک اطلاعاتی نیاز به ایجاد جدول برای ذخیره تصاویر داریم


    CREATE TABLE `tblImages`
    (
    `imgID` int(11) unsigned NOT NULL auto_increment,
    `imgType` varchar(32) NOT NULL default '',
    `imgImage` BLOB NOT NULL,
    `imgSize` varchar(32) NOT NULL default '',
    `imgDate` datetime NOT NULL default '0000-00-00 00:00:00',
    PRIMARY KEY (`imgID`)
    ) TYPE=MyISAM;


    معرفی:

    int از نوع عددی

    auto_increment ایجاد اتوماتیک ID

    varchar از نوع کاراکتر

    BLOB شیء بزرگ دودویی است که در سریعترین زمان ذخیره سازی میکند و خروجی میگیرد.

    از انواع BLOB میتوان به

    BLOB
    TINYBLOB
    MEDIUMBLOB
    LONGBLOB
    اشاره کرد.

    datetime شیء برای قرار دادن تاریخ و ساعت ذخیره سازی


    این جدول برای قرارگیری تصاویر در بانک اطلاعاتی ایجاد شده است


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


    در اینجا نیاز به یک فرم html برای ارسال تصویر داریم

    کد HTML:
    <form method="post" action="upload.php" enctype="multipart/form-data">
     <input name="image" type="file" />
     <input type="submit" value="submit" />
    </form>
    با افزودن enctype و قراردادن multipart/form-data مرورگر قادر به ارسال اطلاعات دودویی خواهد بود


    بعد از ایجاد فرم نیاز به افزودن داده ها در بانک اطلاعاتی داریم


    کد زیر را در فایل upload.php قرار دهید سپس اتصال با بانک اطلاعاتی را ایجاد کنید.


    <?php

    $iSize = 10000;

    $iWidth = 100;

    $iHeight = 100;

    if((isset($_FILES["image"])) && ($_FILES["image"]["size"] > 0))
    {
    $imgSize = $_FILES["image"]["size"];
    $imgType = $_FILES["image"]["type"];
    $tmpName = $_FILES["image"]["tmp_name"];

    if($imgSize > $iSize)
    exit("Error: Large file size.");

    $getImgSize = getimagesize($tmpName);

    if(!$getImgSize)
    exit("Error: Invalid Image File.");

    list($width, $height) = $getImgSize;

    if(($width > $iWidth) || ($height > $iHeight))
    exit("Maximum width and height exceeded. Please upload images below 100x100px size");

    $fp = fopen($tmpName, 'r');
    $imageName = fread($fp, filesize($tmpName));

    if(!get_magic_quotes_gpc())
    $imageName = addslashes($imageName);

    fclose($fp);

    $date = date("Y-m-d H:i:s");

    $query = "INSERT INTO tblImages (imgType, imgImage, imgSize, imgDate) VALUES ('$imgType', '$imageName', '$imgSize', '$date')";
    mysql_query($query);

    echo "Your file has been uploaded.";
    }

    ?>
    متغییر های تعریف شده در اینجا:

    iSize: حجم تصویر
    iWidth: عرض تصویر
    iHeight: ارتفاع تصویر


    شرط ما برای ذخیره سازی این است که کاربر فایل را انتخاب کرده و سایز آن بزرگتر از صفر است


    if((isset($_FILES["image"])) && ($_FILES["image"]["size"] > 0))
    متغییر های تعریف شده فایل:

    imgSize: دریافت سایز تصویر ارسال شده
    imgType: نوع تصویر ارسال شده
    tmpName: ذخیره موقت تصویر در tmp

    برای چک کردن صحت حجم تصویر از شرط زیر استفاده کردیم


    if($imgSize > $iSize)
    exit("Error: Large file size.");
    تابع getimagesize برای دریافت ابعاد تصویر است، اگر false باشد یعنی فایل ارسالی تصویر نیست

    برای این کار از شرط زیر استفاده کردیم


    if(!$getImgSize)
    exit("Error: Invalid Image File.");
    شرط زیر برای چک کردن عرض و ارتفاع است



    if(($width > $iWidth) || ($height > $iHeight))
    exit("Maximum width and height exceeded. Please upload images below 100x100px size");



    تابع fopen برای خواندن فایل یا URL استفاده میشود، آدرس را از tmp ها میخواند

    تابع fread برای خواندن امن فایل های دودویی یا باینری به کار میرود

    تابع filesize برای دریافت سایز فایل استفاده میشود


    تابع get_magic_quotes_gpc در این شرط گفته شده اگر غیر فعال بود از addslashes استفاده کن.


    get_magic_quotes_gpc تمامی qoute ها را با متغیر های ارسالی با اضافه کردن slash فیلتر میکنه


    تایع addslashes همونطور که از اسمش مشخص است برای اضافه کردن slash به کار میرود تا مشکلی احتمالی برای افزودن رکورد پیش نیاید


    تابع fclose برای بستن فایل باز شده استفاده میشود.


    در ادامه آموزش نمایش تصویر از طریق بانک اطلاعاتی را خواهم گفت


    منبع: http://www.Vvolf.net


    موفق

  2. #2

    نقل قول: ذخیره تصاویر در MySQL و نمایش آنها با PHP قسمت اول


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •