PDA

View Full Version : مبتدی: نمایش عکس ذخیره شده به صوردت باینری در دیتابیس در داخل گزید؟



mohammad diba
جمعه 07 بهمن 1390, 14:49 عصر
من یه فیلد باینری در دیتابیس دارم که عکس ذخیره شده حالا می خوام انو در گرید نمایش بدم . دوستان من آدرس ذخیره نکردم خود عکس رو ذخیره کردم . در ضمن سرچ کردم ولی همش لود آدرس عکس بود.

parvizwpf
جمعه 07 بهمن 1390, 16:02 عصر
لود آدرس عکس یعنی چی؟
چرا عکس دخیره میکنی؟

crazy_1892
جمعه 07 بهمن 1390, 16:20 عصر
http://barnamenevis.org/showthread.php?276759-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%B9%DA%A9%D8%B3-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A8%D8%A7%D9%86%DA%A9-%D8%AF%D8%B1-dataGridView

به اینجا هم یه سری بزن

http://forum.how2learnasp.net

vahid.ch013
جمعه 07 بهمن 1390, 17:05 عصر
من یه فیلد باینری در دیتابیس دارم که عکس ذخیره شده حالا می خوام انو در گرید نمایش بدم . دوستان من آدرس ذخیره نکردم خود عکس رو ذخیره کردم . در ضمن سرچ کردم ولی همش لود آدرس عکس بود.
پیشنهاد میکنم خود عکس رو داخل DB دخیره نکنید چون با اضافه شدن عکسها حجم DB افزایش پیدا میکنه، یکی از راهها استفاده از مسیر عکس هست، یعنی مسیر عکس رو داخل Table ذخیره کنید.

mohammad diba
جمعه 07 بهمن 1390, 18:19 عصر
پیشنهاد میکنم خود عکس رو داخل DB دخیره نکنید چون با اضافه شدن عکسها حجم DB افزایش پیدا میکنه، یکی از راهها استفاده از مسیر عکس هست، یعنی مسیر عکس رو داخل Table ذخیره کنید.

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

mohammad diba
جمعه 07 بهمن 1390, 18:23 عصر
http://barnamenevis.org/showthread.php?276759-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%B9%DA%A9%D8%B3-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A8%D8%A7%D9%86%DA%A9-%D8%AF%D8%B1-dataGridView

به اینجا هم یه سری بزن

http://forum.how2learnasp.net

ممنون دوست عزیز ولی این تاپیک تویه ویندوزه من تویه وب می خوام.

vahid.ch013
جمعه 07 بهمن 1390, 19:05 عصر
من به دلایل امنیتی مجبورم این کار رو بکنم نمی خوام دسترسی به عکس وجود داشته باشه.
شما میتونید اون فولدری رو که نمیخواین در دسترس کسی قرار بگیره Permission بزارید تا کسی نتونه بازش کنه.

mohammad diba
شنبه 08 بهمن 1390, 01:26 صبح
شما میتونید اون فولدری رو که نمیخواین در دسترس کسی قرار بگیره Permission بزارید تا کسی نتونه بازش کنه.

آخه فقط این نیست پشتبان گیریش هم هست بعدشم اگه طرف با CD live بوت شه همه چی رو میبینه. یعنی اصلا راهی نداره من عکس رو نمایش بدم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟

mosini
شنبه 13 اسفند 1390, 07:21 صبح
من یه فیلد باینری در دیتابیس دارم که عکس ذخیره شده حالا می خوام انو در گرید نمایش بدم . دوستان من آدرس ذخیره نکردم خود عکس رو ذخیره کردم . در ضمن سرچ کردم ولی همش لود آدرس عکس بود.
کاری که باید انجام بدی اینه که اون مقدار باینری رو با کلاس Drawing به Image تبدیل کنی و توی گرید هم از template اون استفاده کنی.یعنی توی template اون یه ImageButton بزاری و Image ساخته شده را به اون بدی.
راستی دیگه از ما احوال نمی پرسی!!!

fakhravari
شنبه 13 اسفند 1390, 13:32 عصر
فعلا اینو دم دست دارم
// سورس کد ذخیره تصویر در بانک اطلاعاتی

public void OnUpload(Object sender, EventArgs e)
{
// ساختن یک byte[] از فایل ورودی
int len = Upload.PostedFile.ContentLength;
byte[] pic = new byte[len];
Upload.PostedFile.InputStream.Read (pic, 0, len);

// افزودن تصویر و توضیح تصویر به بانک اطلاعاتی
SqlConnection connection = new
SqlConnection (@"server=127.0.0.1;database=MyData;uid=sa;pwd=yourpa ss");
try
{
connection.Open ();
SqlCommand cmd = new SqlCommand ("insert into Image "
+ "(Picture, Comment) values (@pic, @text)", connection);
cmd.Parameters.Add ("@pic", pic);
cmd.Parameters.Add ("@text", Comment.Text);
cmd.ExecuteNonQuery ();
}
finally
{
connection.Close ();
}
}
-----------------
private void Page_Load(object sender, System.EventArgs e)
{
MemoryStream stream = new MemoryStream ();
SqlConnection connection = new
SqlConnection (@"server=127.0.0.1;database=MyData;uid=sa;pwd=yourpa ss");
try
{
connection.Open ();
SqlCommand command = new
SqlCommand ("select Picture from Image", connection);
byte[] image = (byte[]) command.ExecuteScalar ();
stream.Write (image, 0, image.Length);
Bitmap bitmap = new Bitmap (stream);
Response.ContentType = "image/gif";
bitmap.Save (Response.OutputStream, ImageFormat.Gif);
}
finally
{
connection.Close ();
stream.Close ();
}
}