ورود

نسخه کامل مشاهده نسخه کامل : ذخیره تصویر در یک پوشه و ذخیره مسیر ان در دیتا بیس



fereshte222
28-03-2007, 22:53
سلام
میدونم که همگی میگید این سوال تکراری است ولی من هرچه گشتم کدی که با vb.net و تحت وب باشد پیدا نکردم.
من برنامه ای میخواهم که مسیر عکس را در دیتا بیس و خود عکس را در یک پوشه ذخیره کند.
در ضمن همان طور که گفتم حتما با vb.net و تحت وب باشد.
ممنون میشوم

_H2_
29-03-2007, 10:02
سلام
با چیش مشکل دارید؟؟ چون زیادی ساده است. نمیتونید آپلود کنید؟ نمیتونید عکس را ذخیره کنید؟ یا نمیتوانید نشانش دهید؟

به هرحال در مورد نشان دادن عکس های این تیپی در یک جدول میتوانید از سورس نمونه زیر استفاده کنید.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

fereshte222
29-03-2007, 18:34
ببینید من در همه کارهایی که گفته بودید مشکل دارم .(غیر از نشان دادن تصویر)البته روش کلی کار را میدونم.ولی دنبال یک کد کامل هستم که مناسب این کار باشد.البته چند تا برنامه با windowsapplication و یا سی شارپ پیدا کردم.ولی در تبدیلش به vb.net مشکل پیدا کردم.
اگه شما یا هر کدام از دوستان دیگر یک کد با vb.net وتحت وب به من معرفی کنند ممنون میشوم.

_H2_
31-03-2007, 12:21
سلام
فعلا سورس بهتری ندارم.
البته در حال طراحی یک کنترلر وبی هستم که گمان میکنم کلیه مشکلاتم را در مورد تصاویر runtime در وب حل کند. (عکس از داخل بانک، مسیر عکس در بانک، تغییر سایز runtime عکس و...)

شاید تا حدود یک هفته دیگر حاضر شود.

اگر دوستان سورس بهتری نگذاشتند، بهتر است سوالاتتان را مطرح کنید تا من و دوستان دیگر جواب دهیم.

fereshte222
31-03-2007, 13:43
سلام
من منتظر برنامه شما میمونم
از راهنماییتون ممنون هستم

_H2_
03-04-2007, 11:51
سلام
میدانم حرفی که میخواهم بزنم شبیه مثل معروف "بزک نمیر ...." است ولی انشاا... به زودی عملی میشود، چون خودم هم از کد نویسی های پیاپی و کپی و پیس در این زمینه خسته شده ام!

من در حال طراحی یک کنترلر وبی با نام PictureBox هستم که انشا ا... قادر خواهد بود تمام مشکلات عکس های runtime را در ASp.Net حل کند. (عکس در بانک، تغییر سایز دینامیک عکس و...)
البته حرفم را اصلاح میکنم! ASP.Net در این ضمینه مشکلی ندارد!
شاید بهتر بود میگفتم که ما را از کدنویسی های پیاپی در این مورد راحت میکند!

این کنترلر در دوحالت مختلف کار میکند (با دو الگو یا الگوریتم متفاوت)، که کدهای حالت اول آن حدود 80% پیشرفت فیزیکی داشته.
به محض اتمام همین حالت اول، کنترلر را برای دانلود میگذارم، تا بعد الگوریتم دوم را هم کامل کنم.

_H2_
03-04-2007, 12:20
ببینید من در همه کارهایی که گفته بودید مشکل دارم .(غیر از نشان دادن تصویر)

سلام
آقا یادم رفت بپرسم! اصل طریقه نشان دادن است در مورد ذخیره که کافیست مسیر عکس را که یک String است در بانک ذخیره کنید.
یعنی شما نمیتوانید یک فیلد String ناقابل را در بانک تغییر دهید یا به آن اضافه کنید؟؟؟؟؟؟؟؟؟؟؟

fereshte222
03-04-2007, 20:32
سلام
از اونجایی که یه مدتیه عضو انجمن شده ام و تاپیک ها را دنبال میکنم میدونم که وعدهای شما حتما عملی است.
در ضمن همان طوری که خودتان گفته بودید ذخیره یک فیلد string مشکل نیست و منظور من هم همان ذخیره خود تصویر در پوشه است.

_H2_
04-04-2007, 12:00
سلام
در مورد ذخیره سازی فایل بستگی دارد چگونه فایل را دریافت میکنید. فایل از کجا وارد میشود؟

یک راه معمول اجازه آپلود به کاربران است که به کمک کنترلر وبی System.Web.UI.WebControls.FileUpload انجام میگیرد، اگر چنین است میتوانید با کمک پروپرتی PostedFile فایل را به راحتی ذخیره کنید، حتی نام اصلی فایل را هم دارید، فقط کافیست مسیر ذخیره رات بدهید.

ولی چند نکته مهم است
1 - حتما حجم فایل را چک کنید تا از سقفی بیشتر نباشد و اگر بود به کاربرتان خطا دهید.
2 - نام فایل احتمال دارد قبلاَ استفاده شده باشد با دستور System.IO.File.Exists از وجود نداشتن فایل مطمئن شوید واگر فایل وجود داشت میتوانید یک عدد به انتهای آن اضافه کنید و مجدداَ چک کنید و آن عدد را مدام بالا ببرید تا بالاخره یک نام آزاد پیدا کنید، ولی توجه داشته باشید که عدد باید قبل از شروع نقطه و پسوند فایل اضافه شود.
در ضمن امکان دارد همین عمل در شاخه های دیگر در حال اجرا باشد و دو شاخه یک نام خالی پیدا کنند و اقدام به ساخت دو فایل با یک نام کنند که بدون شک سر یکی بی کلاه میماند (البته امکانش کم است ولی برنامه نویس باید کوجکترین موارد 1 در میلیارد را هم پیش بینی کند!) میتوانید از کاربر بخواهید مجدداَ آپلود کند یا در حین کار Application را قفل کنید.

3- باید اجازه تغییرات و ذخیره فایل در پوشه مورد نظر را از ControlPanel سایتتان صادر کنید. (همان که با [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] وصل میشوید)

و برای ذخیره نهایی از چیزی شبیه این کد استفاده کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

و نام را دارید دیگر! کافیست آن را هم در رکورد مربوطه بانک ذخیره کنید.

_H2_
11-04-2007, 10:51
سلام
میبخشید کمی تاپیک خوابید...!
بالاخره نمونه اولیه این کنترلر درپیت ما با نام PictureBox را دیشب با موفقیت امتحان کردم و جواب داد.

ولی برای نسخه کامل هنوز باید تا شنبه منتظر بمانید! باید کدها را از اول بررسی کنم و کنترلر را در نقاط و دستورات بحرانی (شرایط لب مرزی!) چک کنم و مطمئن شوم که در همه شرایط تایین شده و با هر مقادیر درست کار میکند، و نیز یک پروژه نمونه برای استفاده از آن بنویسم. (سعی میکنم پروژه نمونه بسیار کوچک و گویا باشد و هر رویه حداکثر چند خط کدنویسی شده باشد).

نمونه فعلی از هر عکس که شاخصی یا کلیدی داشته باشد، پشتیبانی میکند !!!
مثلاَ میتوان گفت عکس های موجود در دیتابیس (خود عکس در دیتابیس) کلیدشان، همان کلید جدول جاری است.
یا عکس هایی در دیتابیس که مسیر را ذخیره کرده اند خود مسیر کلید شناسایی تصویر است.
عکس های در هارد هم که مسیر و نامشان همان کلید شناسایی عکس است.

استفاده از این کنترلر بسیار ساده است و بدون شک سادگی را در پروژه نمونه خواهید دید.
در تمام موارد فوق و موارد دیگر امکان تغییر اندازه runtime عکس نیز وجود دارد.
فقط کمی تا شنبه منتظر بمانید تا من کد نونه را تولید (شامل کد upload تصویر) و خود کنترلر را هم کاملاَ چک کنم.

البته در مورد مشکل شما، اعتراف میکنم که این کنترلر زیاد بدردتان نمیخورد چون نمایش خام تصاویری که مسیرشان در دیتابیس ذخیره شده، بسیار آسان است و نیازی به این کنترلر ندارد ولی از پروژه نمونه، کد upload را میتوانید استفاده کنید.

_H2_
14-04-2007, 17:57
سلام
خوشبختانه نمونه اولیه کنترلر آماده است و میتوانید دانلود کنید. این کنترلر نیز به مجموعه H2GBN.dll اضافه شده و مجدداً کامپایل شده.

امروز کمی با خط اینترنت مشکل دارم! و هنوز هم ادامه دارد.
ولی خوشبختانه توانستم اطلاعات مورد نیاز را آپلود کنم.
برای توضیحات بیشتر به لینک مراجعه کنید. (البته کمی از نظر دیداری مشکل دارد که با سرپا شدن اینترنتم حلش میکنم.)

توضیحات:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

دانلود کد نمونه به دو زبان VB و #C و دو حالت تک و جدولی:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

fereshte222
15-04-2007, 14:09
سلام
خسته نباشید.من فایلتون را دانلود کردم .برنامه جالبی بود.در ضمن فکر میکنم اگر در یک تاپیک با عنوان کنترلر تصویر هم فایلتون را قرار بدهید بد نباشد.
منتظر برنامه های بعدیه شما هستیم

fereshte222
16-04-2007, 13:31
سلام
من برای آپلود فایل از کد های برنامه خودتون به صورت زیر استفاده کردم ولی نمیدونم چرا نام فایل را در دیتا بیس فقط به صورت نقطه و پسوند فایل ذخیره میکند و نام فایل را ذخیره نمیکند.مثلا gif . کدی که استفاده کردم به صورت زیر است:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
16-04-2007, 14:16
سلام
من برای آپلود فایل از کد های برنامه خودتون به صورت زیر استفاده کردم ولی نمیدونم چرا نام فایل را در دیتا بیس فقط به صورت نقطه و پسوند فایل ذخیره میکند و نام فایل را ذخیره نمیکند.مثلا gif . کدی که استفاده کردم به صورت زیر است:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

سلام
با یک نگاه سریع به نظر میرسد که شما لطف کرده اید و یک خط کد وحشتناک به کدهای من اضافه کرده اید ؟!؟!؟!؟

fereshte222
16-04-2007, 16:08
سلام
ببنید من وقتی همه تصاویر را با اسم 542.gif ذخیره میکرد Me._strTableKeyValue & را از قسمت اول کد حذف کنم
و یک بار با این کد امتحان کردم

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

_H2_
17-04-2007, 12:15
سلام
من درست متوجه نشدم !!!
نام های ذخیره شده در بانک شما صرفاَ پسوند دارند یا شما از نام های عددی خوشتان نمی آید؟؟
شما میخواهید تصاویر با نام واقعی شان ذخیره شوند؟؟

fereshte222
17-04-2007, 13:55
بله میخواهم تصاویر با نام واقعیشون ذخیره شوند

_H2_
17-04-2007, 15:40
سلام
در این صورت اصلاَ نیازی به متغییر filename ندارید !
یعنی باید:
filename = Me.f_FileUpload_Folder.FileName

یا تمام filename ها را حذف و یکراست از Me.f_FileUpload_Folder.FileName استفاده کنید.

علت تغییر نام آنها توسط من تضمین این مطلب بود که در Upload های مختلف دچار نامهای یکسان نشویم.
و شما هم حتما باید به این مطلب توجه کنید که شاید دو نفر در دو زمان مختلف دو فایل مختلف را با یک نام مشترک upload کنند و آنگاه ....

fereshte222
19-04-2007, 11:41
سلام احتمالا من دوباره دارم اشتباه میکنم.ولی من وقتی برنامه شما را بدون هیچ تغییری اجرا کردم .در قسمت اپلود فایل در پوشه وقتی با چند تا تصویر کار کردم دیدم که وقتی چند تا فایل با پسوند یکسان ولی نام های متفاوت را میخواهم اپلود کنم هر دفعه که میخواهم تصویر جدید را اپلود کنم تصویر قبلی را حذف میکند(در حالی که فقط پسوندها یکسان است و نام ها متفاوت است.
نمیدونم من دارم اشتباه میکند یا الگوریتم برنامه اینطوریه؟

_H2_
21-04-2007, 10:37
سلام
الگوریتم کاری اینطور است و لازم است که کاملتر شودو تصاویر قدیمی پاک شود.
برنامه برای سادگی در عدم تداخل نام و قفل نکردن شی مشترک برای جلوگیری از تداخل نامها در حین اجرای چند رسمانی و نیز سرعت و کدنویسی فوق العاده کوتاه، فایلهای ورودی را به نام مشخص شده تغییر نام میدهد.
هنوز هم برای سادگی و کدنویسی کم اگر پسوندها متفاوت باشد، تصویر پاک نمیشود، که به نظر من باید اصلاح شود.

چون هر طبق قواعد نرمال سازی هر سط جدول باید صرفاَ یک عکس داشته باشد و با آمدن تصویر جدید تصویر قدیمی حذف شود تا منابع بیخود مصرف نشود، (نمونه اش همین آواتارها .)