اضافه کردن تصویر به پایگاه داده

سامان

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

  • بررسی پیش نیازهای اضافه نمودن فایل تصویری
  • کار با شیء Stream
  • پیدا کردن اندازه و نوع تصویری که آپلود می شود
  • چگونگی استفاده از متد InputStream
  • بررسی پیش نیازهای اضافه نمودن فایل تصویری
  • دو مورد اصلی که قبل از شروع آپلود نیاز داریم عبارتند از:

– تنظیم خاصیت enctype فرم مربوطه (در برچسبForm) به enctype=”multipart/form-data” – داشتن< input type=file>که به کاربر اجازه انتخاب فایل مورد نظرش را می دهد. (فایلی که در پایگاه داده باید ذخیره شود) و یک Submit button جهت اجرای عملیات مربوط به آپلود کردن فای – استفاده از فضانام System.IO جهت سروکار داشتن با شیء Stream سه پارامتر بالا در یک صفحه aspx بکار می روند.ما همچنین به پیش نیازهای زیر در SQL Server نیازمندیم: – داشتن حداقل یک جدول با فیلدی از نوع image – بهتر است که فیلد دیگری از نوع varchar جهت ذخیره تایپ تصویر داشته باشیم روند کار بدین صورت است که در ابتدا محتویات فایل تصویر خوانده می‌شود و سپس تصویر به جدول افزوده می‌شود. در زیر کد مربوط به رویداد OnClick مربوط به Submit button که تصویر را خوانده و به جدول SQL اضافه می‌کند، می‌پردازیم:

شیء PersonImage نام کنترل HTMLInputFile است. در ابتدا ما نیاز داریم که اندازه تصویری که جهت اضافه کردن انتخاب شده را بدانیم که توسط کد زیر قابل اندازه گیری است:

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

در اینجا ما یک آرایه از بایتها بنام ImageContent که آماده نگهداری محتویات تصویر است، داریم. تصویر ورودی توسط متد Read از شیء Stream خوانده می شود. متد Read سه آرگومان می گیرد:

  1. موقعیت مکانی که محتویات تصویر در آن باید کپی شود
  2. مکان شروع جهت خواندن
  3. تعداد بایتهایی که باید خوانده شود

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

حالا ما می خواهیم محتویات تصویر ورودی را که خوانده ایم به یک جدول SQL اضافه کنیم. به همین منظور از یک زیرروال ذخیره شده که تصویر و نوع آن را به یک جدول اضافه می کند، بهره می بریم. حالا ما می خواهیم محتویات تصویر ورودی را که خوانده ایم به یک جدول SQL اضافه کنیم. به همین منظور از یک زیرروال ذخیره شده که تصویر و نوع آن را به یک جدول اضافه می کند، بهره می بریم. فایل aspx مربوطه:

جدول و زیر روال استفاده شده:

بازیابی تصاویر از SQL Server در ASP.NET: در مقایسه با اضافه کردن تصویر، بازیابی آن بسیار ساده است. تنها چیز جدید برای این قسمت استفاده از متد BinaryWrite موجود در شیء Response است. کدهای مورد استفاده جهت بازیابی تصاویر از SQL Server:

تمام کار این مرحله اجرای یک دستور SQL و تکرار آن برای همه ردیفهاست. قبل از نمایش تصویر، نوع آن هم مشخص می شود.

0
اشتراک گذاری
سامان
سامان

فارغ التحصیل کارشناسی نرم افزار، علاقه مند به برنامه نویسی، طراحی وب، تکنولوژی های نوین، یادگیری و فیلم

پاسخ دهید