PDA

View Full Version : سوال: حذف کردن urlتصاویراز دیتابیس وپوشه website/image به صورت همزمان



Shamim832
شنبه 26 دی 1388, 12:02 عصر
دوست عزیز سلام
من کارهای زیر رو تونستم انجام بدم:
1- تونستم تصاویر رو در پوشه website/Image و Url اونها رو داخل دیتابیس ذخیره کنم با استفاده از دکمه save
2- خوندن تصاویر از بانک و نمایش اونها در Repeater
اما چند تا مشکل وجود داره :
-1 درRepeater برای Img اندازه عرض وارتفاع تصاویر را به 150 محدود کردم اما برخی تصاویر معمولا دارای عرض وارتفاع یکسانی نیستند وبرخی دیگراندازه ارتفاعشان بیشتر از عرض است چکار کنم تا همه تصاویر به صورت خوبی نمایش داده شوند؟

2- دراین حالت تصاویر صرفا نمایش داده می شوند چکارکنم که:
وقتی روی هر تصویری کلیک می کنم تصویر با اندازه اصلی اش در جای دیگر نمایش داده شود؟

3- آیا Repeater در صفحه ای که از مسترپیج استفاده می کند عمل می کند(یعنی داخل تگcontent place holder/>> content place holder>>)؟

4- آیا غیر از Repeater با چیز دیگری هم می توان تصاویررا نمایش داد؟

5- من یک دکمه delete هم گذاشتم و تونستم تصاویر رو از بانک حذف کنم اما چطوری همزمان با اون از پوشه Image هم حذف بشن ؟

وآخرین سوال File.dispose() چکار می کنه؟

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

bahar_engineer
شنبه 26 دی 1388, 12:58 عصر
1. با این همه سوالات متفاوت احتمال داره تاپیکتون حذف بشه اونهایی که خیلی با هم تفاوت دارن رو توی تاپیک جدا مطرح کنید

اما پاسخ بعضی از سوالاتتون

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

من شخصا عکس ها رو با گریدویو نمایش می دم چون در کنارش متن هم هست

برای اینکه موقع حذف عکس ها از پوشه هم حذف بشن توی رویداد rowdeleting گریدویو کد می نویسم که از بانک هم حذف کنه ... در واقع کد سطری که روش کلیک می شه رو بدست می آرم و از اون طریق از بانک آدرس عکس رو پیدا می کنم و با دستورات مربوطه حذف می کنم

بخوای کامل تر برات می ذارم

برای اینکه تصویر بزرگ نمایش داده بشه باید یه صفحه جدا بسازی که یه ریپیتر دیگه توش باشه و id عکس رو براش بفرستی و البته اندازش رو بزرگ تنظیم کنی ... با کوئری استرینگ id رکورد کلیک شده رو می فرستی و اونجا نمایش داده می شه عکس بزرگ

در مورد سوال اولت می تونی خودت عکس ها رو توی فتوشاپ همه رو سایزشونو یکسان کنی یا اگه برات مهم نیست که سایزهاشون متفاوت باشه می تونی براش فقط یه فیلد تعریف کنی مثلا فقط عرض ها رو مشخص کنی 200 مثلا و ارتفاع رو مشخص نکنی اونوقت همه عکس ها ریسایز می شن به عرض 200 و ارتفاعشون متناسب با خود عکس تغییر می کنه البته نظم صفحه ات به هم می خوره بهتره توی فتوشاپ خودت عکس ها رو هماهنگ کنی

سوال سومت رو تست نکردم اما قاعدتا باید جواب بده

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

Shamim832
شنبه 26 دی 1388, 13:11 عصر
سلام ممنون از جوابت یه نمونه سورس آموزشی نداری ؟ البته خودم حذف Urlتصاویر از بانک رو می دونم حذف خود تصاویر از داخل پوشه Image وب سایت رو نمی دونم؟

bahar_engineer
شنبه 26 دی 1388, 13:17 عصر
سلام ممنون از جوابت یه نمونه سورس آموزشی نداری ؟ البته خودم حذف Urlتصاویر از بانک رو می دونم حذف خود تصاویر از داخل پوشه Image وب سایت رو نمی دونم؟


اینطوری کد سطر مورد نظر رو بدست می آری (البته توی گریدویو)


GridView1.DataKeys[e.RowIndex].Value.ToString();


بعد هم حذف به این شکل


imgpath = Server.MapPath(tem);
File.Delete(imgpath);


که tem آدرس عکس اون سطر هست که کدشو بدست آوردی که این tem رو از دیتابیس در می آری که معمولا شامل پوشه عکس هاست + نام عکس