PDA

View Full Version : بازیابی عکس از دیتابیس



amir_masoud
یک شنبه 05 فروردین 1386, 16:13 عصر
سلام دوستان عزیز
سال نو رو به همه شما تبریک می گم
من تویه قسمت ثبت نام یه سایت می خوام امکان گذاشتن عکس از کاربران ثبت نام شده هم در زمان ثبت باشه .
قسمت ثبت عکس داخل دیتابیس رو نوشتم ( به کمک تاپیکهایی که تویه همین سایت و سایتهای دیگه خوندم ) .
حالا می خواستم ببینم که به چه صورت می شه داخل یه فرم که می خوایم یه سری اطلاعات به کاربر بدیم اون عکس رو از دیتابیس خوند و نمایش داد . ( داخل یه کنترل مثل image )
چند تا مقاله هم خوندم که عکسها رو داخل دیتا گرید می ریختند و از یه صفحه دیگه برای گرفتن عکسها استفاده می کردند . ولی خب نتونستم کاری که می خوان انجام بدم .
فرض کنید مثل ثبت نام سایت سنجش که کاربر می تونه عکسش رو انتخاب کنه و یه پیش نمایش از اون ببینه و بعد اطلاعات رو ثبت کنه + نمایش اون اطلاعات ثبت شده همراه با عکس به کاربر داخل یه فرم ( با سی شارپ و sql server 2000 )
با تشکر

MehranZand
یک شنبه 05 فروردین 1386, 19:11 عصر
از ItemTemplate استفاده کن و کنترل image درونش قرار بده .
در قسمت دیتابایندینگ image خاصیت ImageUrl را مقدار بده.
مثلا :

eval("img","picture Address")
که در اینجا img نام ستونی هست (در دیتابیس) که آدرس عکس هات در اون قرار داره
و picture address هم مسیر عکس های ذخیره شده روی پروژه میباشد.
موفق باشی

__H2__
دوشنبه 06 فروردین 1386, 18:51 عصر
سلام
نمونه کد زیر بر اساس همان روشی است که کاربر mehranzand (http://www.barnamenevis.org/forum/member.php?u=33511) گفته.
http://h-two.info/Download.aspx?File=GridView.zip

amir_masoud
سه شنبه 07 فروردین 1386, 04:48 صبح
سلام دوستان عزیز
از پاسخ شما ممنون .
راستش من عکسهام رو تویه sql ذخیره کردم و می خوام اونها رو از داخل دیتابیس بخونم نه یه پوشه روی سرور که عکسها داخل اون ریخته شدن .

به کمک چند تا مقاله بخش ذخیره عکسها به همراه سایر مشخصات داوطلبی رو نوشتم .
یه مقاله هم خوندم که طریقه بازیابی عکس از دیتابیس رو گفته بود .
تویه این مقاله تمام عکسها از دیتابیس خونده شده و داخل دیتاگرید نشون داده می شن .
( فایلهاش رو ضمیمه کردم )

من می خوام تویه فرم کاربر شماره دانشحویی رو که وارد کرد و روی دکمه مشاهده اطلاعات کلیک کرد فقط عکس همون کاربر نشون داده بشه . اگه ممکنه بگین این قسمت

<%# "getImage.aspx?ID=" + DataBinder.Eval(Container.DataItem
"userid")%>

رو به چه صورت باید اصلاخ کنم که فقط شماره دانشجویی وارد شده تویه تکست باکس از طریق query string به صفحه getimage ارسال بشه .
باز هم از توجه و پاسختون ممنونم .

amir_masoud
چهارشنبه 08 فروردین 1386, 15:22 عصر
سلام
دوستان خواهش می کنم اگه به این روش کار کردین منو راهنمایی کنید .

__H2__
پنج شنبه 09 فروردین 1386, 13:42 عصر
سلام
باشه بابا! جهنم ضرر! سعی میکنم در چند روز آینده همان سورس را تکمیل کنم و کدی برای اینکار اضافه کنم.
شاید کد تغییر سایز تصویر را هم اضافه کردم. چون خیلی ها با این دو مسئله مشکل دارند و چون جواب ها اغلب طولانی است و نیاز به مثال دارد آدم بی خیال جواب میشود! ولی اگر یک سورسی آمده داشته باشیم، فورا لینک دانلودش را میدهیم!

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

بحرحال وقتی حاضر شد در همین جا میگویم و شما میتوانید با همان لینک قبلی دانلودش کنید.

amir_masoud
یک شنبه 12 فروردین 1386, 16:44 عصر
ممنون دوست عزیز

اندازه عکسهایی که من می خوام تویه دیتابیس ذخیره کنم 4*3 هست و حجمشون هم کمه .
الان می تو.نم زمان ثبت نام عکس رو بهمراه سایر مشخصات ذخیره کنم . ولی برای بازیابی فقط تونستم به کمک مقالات مختلفی که خوندم کدی بنویسم که می تونه تمام عکسهای دیتابیس رو تویه یه دیتا گیرد نشون بده . ( ولی من می خوام بتونم شماره طرفو بدم و تویه یه فرم عکس اون بهمراه سایر مشخصاتش بیاد . )

rezaei manesh
شنبه 17 شهریور 1386, 12:59 عصر
سلام
من هم دقیقا مشکل امیر رو دارم یعنی میخوام عکسی رو که در بانک قرار داره در فرم ویرایش نشان بدم و..
من یک کنترل image به فرم اضافه کردم اما اون خاصیتی نداره که من lmage رو مستقیم درونش بزارم فقط لینک می خواد و...

rezaei manesh
یک شنبه 18 شهریور 1386, 17:49 عصر
یعنی هیشکی نمی دونه؟!!!!!!!!!!1

medi33
دوشنبه 19 شهریور 1386, 06:44 صبح
سلام
یک webPage در پروژتون اضافه کنید به هر اسمی که خواستید.
خاصیت imageUrl عکسی را که دارید به همراه شناسه جدولتون با یک QueryString یا هر طور دیگه ای به webPage جدید ارسال کنید. مثال:
Image1.ImageUrl="LoadPic.aspx?id=1;"
در ادامه به این آدرس مراجعه کنید http://barnamenevis.org/forum/showthread.php?t=76708
اگه مشکلی با کد داشتین بگید تا سورس پروژه رو براتون بفرستم چون این روش کاملا تست شده و من خودم از این روش در چند پروژه بزرگ استفاده کردم
موفق باشید!

rezaei manesh
دوشنبه 19 شهریور 1386, 11:05 صبح
سلام
من کدی رو که گفتید پیدا نکردم
باز هم می گم خود عکس در بانک هست
اگه زحمتی نیست واستون یه مثال برای ما بزارید که عملاً ببینیم که چه جوریاست
ممنون از توجه تون