PDA

View Full Version : مبتدی: ذخیره عکس در دیتابیس



info.service1983
پنج شنبه 14 مرداد 1400, 21:09 عصر
با سلام
من یک پروژه ای دارم که رابط و اتصال فرم با دیتابیس درون کلاس تعریف شده است . و الان میخوام که تصویر را از طریق قرم در picture Box بخونه و از طریق کلاس ببره و توی دیتابیس ذخیره کنه . آیا کسی می تونه منو راهنمایی کنه ؟؟؟؟

nunegandom
یک شنبه 17 مرداد 1400, 19:25 عصر
public static byte[] ReadToEnd(System.IO.Stream stream){
long originalPosition = 0;


if(stream.CanSeek)
{
originalPosition = stream.Position;
stream.Position = 0;
}


try
{
byte[] readBuffer = new byte[4096];


int totalBytesRead = 0;
int bytesRead;


while ((bytesRead = stream.Read(readBuffer, totalBytesRead, readBuffer.Length - totalBytesRead)) > 0)
{
totalBytesRead += bytesRead;


if (totalBytesRead == readBuffer.Length)
{
int nextByte = stream.ReadByte();
if (nextByte != -1)
{
byte[] temp = new byte[readBuffer.Length * 2];
Buffer.BlockCopy(readBuffer, 0, temp, 0, readBuffer.Length);
Buffer.SetByte(temp, totalBytesRead, (byte)nextByte);
readBuffer = temp;
totalBytesRead++;
}
}
}


byte[] buffer = readBuffer;
if (readBuffer.Length != totalBytesRead)
{
buffer = new byte[totalBytesRead];
Buffer.BlockCopy(readBuffer, 0, buffer, 0, totalBytesRead);
}
return buffer;
}
finally
{
if(stream.CanSeek)
{
stream.Position = originalPosition;
}
}
}


byte[] m_Bytes = StreamHelper.ReadToEnd (mystream);

رامین مرادی
سه شنبه 19 مرداد 1400, 07:38 صبح
پیشنهاد میدم عکس رو تو دیتابیس ذخیره نکنید بجاش از روش های جایگزین استفاده کنید.

mrsp1988
سه شنبه 19 مرداد 1400, 16:01 عصر
پیشنهاد میدم عکس رو تو دیتابیس ذخیره نکنید بجاش از روش های جایگزین استفاده کنید.

سلام
میشه در مورد روش توضیح دهید یا نمونه بدید

رامین مرادی
پنج شنبه 21 مرداد 1400, 08:48 صبح
سلام
میشه در مورد روش توضیح دهید یا نمونه بدید
تصویر رو در یک مسیر مشخص دخیره کنید و فقط آدرس فایل رو تو دیتابیس بنویسید. اینجوری هم سرعت دیتابیستون پایین نمیاد هم حجمش زیاد نمیشه.

ShayanFiroozi
چهارشنبه 27 مرداد 1400, 12:22 عصر
سلام ؛

ببینید اگر قراره این عکس‌ها به شکل Client / Server استفاده بشه و پروژه چند کاربره هست بهتره توی دیتابیس ذخیره بشه ، ولی همونجوری که دوستان گفتن پیشنهاد نمیشه ، مگر اینکه مجبور باشین.

** و اگر توی دیتابیس ذخیره می‌کنید دقت کنید در کوئری هاتون فیلد عکس رو از دستور Select خارج کنین ، چون به شدت Performance رو میاره پایین و دشمن RAM هم هست ! فقط وقتی نیاز بود عکس ها رو از دیتابیس واکشی کنین.

رامین مرادی
شنبه 30 مرداد 1400, 14:37 عصر
سلام ؛

ببینید اگر قراره این عکس‌ها به شکل Client / Server استفاده بشه و پروژه چند کاربره هست بهتره توی دیتابیس ذخیره بشه ، ولی همونجوری که دوستان گفتن پیشنهاد نمیشه ، مگر اینکه مجبور باشین.

** و اگر توی دیتابیس ذخیره می‌کنید دقت کنید در کوئری هاتون فیلد عکس رو از دستور Select خارج کنین ، چون به شدت Performance رو میاره پایین و دشمن RAM هم هست ! فقط وقتی نیاز بود عکس ها رو از دیتابیس واکشی کنین.
جسارتا ربطی به چندکاربره بودن و کلاینت سروری نداره. کلا بهتره تو دیتابیس عکس ذخبره نشه. الانم خود اس کیو ال استفاده از فایل تیبل رو پیشنهاد میکنه که بهتره یه سرچی راجبش بکنید.

mehran6764
شنبه 30 مرداد 1400, 17:17 عصر
جسارتا ربطی به چندکاربره بودن و کلاینت سروری نداره. کلا بهتره تو دیتابیس عکس ذخبره نشه. الانم خود اس کیو ال استفاده از فایل تیبل رو پیشنهاد میکنه که بهتره یه سرچی راجبش بکنید.

بعضی کسب و کارها ، فقط کامپیوتر سرور به اینترنت دسترسی داره ، کلاینت ها از اطلاعات اون سیستم سرور استفاده می کنن.
Share dcoument درست حسابی هم ندارن یعنی یه جای کار تنظیمات شبکه همیشه می لنگه ؛ به نظرتون اوجور جاها خطرناک
نیست که عکس ها رو داخل دیتابیس ذخیره نکنیم ؟
به خاطر امنیت عکس ها نمیگم آ ؛ به خاطر اینکه مشکل فراخوانی عکس از پوشه پیش نیاد

رامین مرادی
چهارشنبه 03 شهریور 1400, 14:50 عصر
بعضی کسب و کارها ، فقط کامپیوتر سرور به اینترنت دسترسی داره ، کلاینت ها از اطلاعات اون سیستم سرور استفاده می کنن.
Share dcoument درست حسابی هم ندارن یعنی یه جای کار تنظیمات شبکه همیشه می لنگه ؛ به نظرتون اوجور جاها خطرناک
نیست که عکس ها رو داخل دیتابیس ذخیره نکنیم ؟
به خاطر امنیت عکس ها نمیگم آ ؛ به خاطر اینکه مشکل فراخوانی عکس از پوشه پیش نیاد
این یعنی پاک کردن صورت مسئله. بله میشود ذخیره کرد خیلی ام راحت هست و دردسرای دیگه ای هم نداره. اما بعد چند ماه فاجعه ای رخ میده و حجم دیتاببستون به شدت میره بالا. عملیاتتون با کندی پیش خواهد رفت برای هر درخواست میرید یه چایی دم میکنید برمگردید نتیجه رو مشاهده میکنید. برای مثال خودم تو یکی از نرم افزارهام الان نزدیک 450 گیگ فقط عکس هست . به نطرتون این حجم دیتابیس بود من برای بکاپ گرفتن چقدر باید کاربرام رو معطل میکردم؟

sara_aryanfar
پنج شنبه 04 شهریور 1400, 10:11 صبح
بعضی کسب و کارها ، فقط کامپیوتر سرور به اینترنت دسترسی داره ، کلاینت ها از اطلاعات اون سیستم سرور استفاده می کنن.
Share dcoument درست حسابی هم ندارن یعنی یه جای کار تنظیمات شبکه همیشه می لنگه ؛ به نظرتون اوجور جاها خطرناک
نیست که عکس ها رو داخل دیتابیس ذخیره نکنیم ؟
به خاطر امنیت عکس ها نمیگم آ ؛ به خاطر اینکه مشکل فراخوانی عکس از پوشه پیش نیاد
اولا ذخیره عکس دردیتابیس به خودی خود هیچ امنیتی برای عکس نداره مگر اینکه اون رو تبدیل و به صورت رمزنگاری شده نگهداری کنی که اونم برا عکس غیر منطقی هست دوم ذخیره عکس در دیتا بیس به شدت باعث افزایش حجم اون میشه و مشکلات زیادی پدید میاره

mehran6764
پنج شنبه 04 شهریور 1400, 10:54 صبح
اولا ذخیره عکس دردیتابیس به خودی خود هیچ امنیتی برای عکس نداره مگر اینکه اون رو تبدیل و به صورت رمزنگاری شده نگهداری کنی که اونم برا عکس غیر منطقی هست دوم ذخیره عکس در دیتا بیس به شدت باعث افزایش حجم اون میشه و مشکلات زیادی پدید میاره

ضمن تشکر از توضیحات اقای مرادی و تذکر شما ، خوب منم اشاره کردم منظورم امنیت نیست (البته شاید منظورم رو بد رسوندم )
حالا بگذریم از اینکه مثلا عکس تو پوشه باشه احتمال حذفش با ویرس هست اما تو دیتابیس این اتفاق نمی افته .
هر چند تو پروژه ای که من دارم عکس ها بعد یه دوره ای پاک میشن اما به دلیل توضیحات بالا
تصمیم گرفتم به جای دیتابیس رو فولدر ذخیره کنم