نمایش نتایج 1 تا 20 از 20

نام تاپیک: نحوه خواندن عکس از روی سرور

  1. #1
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    Question نحوه خواندن عکس از روی سرور

    سلام دوستان...
    یه نرم افزار نوشته شده فرض کنین توی یه فرماش اطلاعات کارمندان رو نگه داری میکنه من جمله آدرس عکس کارمند روی سرور.یعنی اینکه توی جدول کارمندان یه فیلد تعریف میکنم یه محتواش آدرس عکس کارمند روی سرور هست.
    حالا میخوام توی فرم مربوط به کاربران یه PictureBox ی بذارم که عکس هر کاربری که از GridView انتخاب میشه از روی سرور خونده بشه و داخل اون نشون داده بشه.
    اول اینکه نظرتون در مورد این روش چیه؟
    دوم اینکه چطوری برای pictureBox تعیین کنم مسیر فایل روی سرور رو؟
    در این صورت مجبورم یه آدرس پیش فرض برای عکس های کارمندان روی سرور درست کنم و نام هر عکس رو برابر کد پرسنلی کارمند قرار بدم.منتها ایرادش اینه که کسی از روی نسخه کلاینت نمیتونه فیلد عکس مربوط به هر کاربر رو ویرایش کنه یا برای کاربر جدید عکسی تعریف کنه و مدیر مجبور میشه عکس کاربر جدید رو خودش به صورت دستی روی سرور توی همون پوشه و با نام کد پرسنلی قرار بده(روشش زیاد به نظر من جالب نیست)

  2. #2

    نقل قول: نحوه خواندن عکس از روی سرور

    کد پرسنلی کاربر رو که برنامه داره !
    موقع ویرایش یا قرار دادن عکس جدید اتوماتیک عکس قبلی رو حذف کنید و عکس جدید رو با کد پرسنلی تو پوشه سرور ذخیره کنید .

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

    البته این یه پشنهاد بود و من سناریو شما رو دقیق نمیدونم و نمیدونم میخواین چی کار کنید . شاید اصلا این آرشیو به کارتون نیاد و نیازی بهش نباشه .

  3. #3
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: نحوه خواندن عکس از روی سرور

    خب درست حالا فرض کنید کلاینت میخواد یه کارمند جدید ایجاد کنه و یه عکس براش انتخاب میکنه(از روی سیستم خودش).حالا این عکس رو چطوری روی سرور(توی یه پوشه) یا روی دیتابیس ذخیره کنیم؟

  4. #4
    کاربر دائمی آواتار حسین.کاظمی
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    Microsoft Visual Studio
    پست
    652

    نقل قول: نحوه خواندن عکس از روی سرور

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

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    اصفهان
    پست
    160

    نقل قول: نحوه خواندن عکس از روی سرور

    نقل قول نوشته شده توسط حسین.کاظمی مشاهده تاپیک
    سلام
    منم چند سال پیش یک نرم افزار برای بهره برداری و امور پرسنلی یک کارخانه نوشتم برای ذخیره عکس پرسنل کاملا اشتباه است که آدرس عکس را ذخیره کنیم؛بهترین، مناسبترین،حرفه ایی ترین روش ذخیره عکس در بانک اطلاعاتی است.
    منم موافقم ولی اپه میخواین این کار روکنید برای ذخیره عکس دز هاست بدون دخالت مدیر از وب سرویس استفاده کنید و برای بازیابی
    using (System.Net.WebClient wc = new System.Net.WebClient())
    {
    using (System.IO.FileStream fs = new System.IO.FileStream("C:\\temp.png",System.IO.File Mode.Create))
    {
    Byte[] barray = wc.DownloadData("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png");
    fs.Write(barray, 0, barray.Length);
    picbox.Image = Image.FromStream(fs);
    }
    }

  6. #6

    نقل قول: نحوه خواندن عکس از روی سرور

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

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

    نقل قول نوشته شده توسط sinaprog مشاهده تاپیک
    منم موافقم ولی اپه میخواین این کار روکنید برای ذخیره عکس دز هاست بدون دخالت مدیر از وب سرویس استفاده کنید و برای بازیابی
    using (System.Net.WebClient wc = new System.Net.WebClient())
    {
    using (System.IO.FileStream fs = new System.IO.FileStream("C:\\temp.png",System.IO.File Mode.Create))
    {
    Byte[] barray = wc.DownloadData("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png");
    fs.Write(barray, 0, barray.Length);
    picbox.Image = Image.FromStream(fs);
    }
    }
    و مثل همیشه سناریوهای امن برنامه های ایرانی ...

  7. #7

    نقل قول: نحوه خواندن عکس از روی سرور

    نقل قول نوشته شده توسط مجتبی تاجیک مشاهده تاپیک
    و مثل همیشه سناریوهای امن برنامه های ایرانی ...
    سلام
    یعنی نحوه دانلود و ذخیره ی یک عکس ـ به این شکل ـ ضعف امنیتی داره؟

  8. #8

    نقل قول: نحوه خواندن عکس از روی سرور

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

    - کاربر میتونه عکس های دیگه رو سرور رو دانلود بکنه .
    - کاربر میتونه به وب سرویس مذکور حملات dos بزنه و سرور down کنه .
    - و ...

    در سناریو فوق راهکار امن این هست که به هر کابر در دیتابیس یک id یونیک (مثلا guid ) تخصیص داده بشه و عکس ها با اون نام guid در شناسایی بشن - برای دانلود عکس یک پرسنل باید guid اون رو بدونی و این مورد رو فقط برنامه میتونه ار بانک طالاعاتی بخونه .
    بماند که پیاده سازی امن همین سناریو هم ریزه کاری های خودشو داره و در ضمن بهتره یک وب سرویس این کارو برعهده بگیره نه http server یا file server و ...

  9. #9

    نقل قول: نحوه خواندن عکس از روی سرور

    نقل قول نوشته شده توسط مجتبی تاجیک مشاهده تاپیک
    بهتره یک وب سرویس این کارو برعهده بگیره نه http server یا file server و ...
    چرا؟
    اگه برا دانلودهامون guid رو post کنیم به http server چه مشکلی میتونه داشته باشه که وب سرویس نداره؟
    چون تا حالا وب سرویس نساختم می پرسم.

  10. #10
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: نحوه خواندن عکس از روی سرور

    من که از جواب دوستان هیچ چیزی نفهمیدم.
    آقایون میدونید که اینجا تالار C#‎ هست؟؟؟؟
    آقا من یه نرم افزار windows form نوشتم که دیتابیسش روی سرور هست و نرم افزار روی کلاینتها نصب میشه خب؟
    برای تمام عملیات ذخیره،حذف و ویرایش هم توی اسکیوال StoreProcedure نوشتم و توی برنامم اونها رو صدا میزنم.
    حالا برای فرم ثبت کارمند میخوام یه فیلد عکس داشته باشم.چیکار باید بکنم؟؟

  11. #11

    نقل قول: نحوه خواندن عکس از روی سرور

    یعنی سیستم عامل سرورتون «سیستم عامل غیر سرور» (ویندوز 7, 8/8.1, 10 و...) است؟

    این تاپیک
    و
    پست 12 این تاپیک
    و
    استک اورفلو

  12. #12
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: نحوه خواندن عکس از روی سرور

    نه عزیز من سیستم عامل سرور از نسخه های سرور هست.

  13. #13

    نقل قول: نحوه خواندن عکس از روی سرور

    سلام
    من اون لینک ها رو خوندم به نظرم خیلی خوب بودن و اگر از SQL Server 2008 یا بالاتر استفاده می کنید، ذخیره عکس توی جدول، کار پیاده سازی رو راحت می کنه.

    اول نمونه برنامه ای که براتون ضمیمه کردم رو ببینید.
    برنامه فقط عمل INSERT رو انجام میده. عمل UPDATE و DELETE رو هم بهتره با StoredProcedure بنویسید. عمل DELETE هم Transaction میخواد چون 2 جدول داریم.

    بعد اگه دوست داشتین موارد مربوط به Performance رو هم بخونید:
    - فایل های (عکسهای) زیر 256KB رو توی جدول و با فیلدی از نوع varbinary(max) ذخیره کنید.
    - جدول عکسها رو جدا از جدول اطلاعات بذارید.
    - جدول عکس ها رو به یک FILEGROUP جداگانه منتقل کنید (روی فایل گروه مستقل از PRIMARY ایجاد کنید).
    - فایل هایی با حجم بالاتر از 1MB رو با FILESTREAM ذخیره کنید نه توی جدول.
    فایل های ضمیمه فایل های ضمیمه

  14. #14
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: نحوه خواندن عکس از روی سرور

    ممنون دوست عزیز.
    قبل از اینکه شما پست بالا رو بذارین من یه فیلد از نوع Varbinary توی جدول کارمندان ایجاد کردم و عملیات ذخیره رو انجام میدم.مشکلی نیست
    اما توی فرم کاربران بنده یه گرید ویو دارم که اطلاعات جدول کارمندان رو نشون میده فیلد مربوط به عکس هم توی گرید بصورت مخفی آوردم حالا میخوام یه pictureBox داشته باشم که وقتی کاربر بین رکوردای گرید جابجا میشه عکس هم توی pictureBox نشون داده بشه.
    کسی میتونه کمک کنه؟

  15. #15

    نقل قول: نحوه خواندن عکس از روی سرور

    خواهش می کنم.
    توی رویداد RowEnter گرید ویو مقدار e.RowIndex رو استفاده کنید.

  16. #16
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: نحوه خواندن عکس از روی سرور

    آقا من از دو کد استفاده کردم هر دوشم جواب نداد:

    pictureBox1.Image = (Image)Dgv_Staffs.CurrentRow.Cells[23].Value;
    این کد خطایی نمیده ولی عکس رو نشون نمیده(توی جدول دارای مقدار هستش البته از نوع varbinary)
    و این کد:

    var data = (Byte[])(Dgv_Staffs.CurrentRow.Cells[23].Value);
    var stream = new System.IO.MemoryStream(data);
    pictureBox1.Image = Image.FromStream(stream);


    این کد هم خطای زیر رو میده:
    ArgumentNullException was unhandled:Buffer cannot be null

  17. #17

    نقل قول: نحوه خواندن عکس از روی سرور

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

    روش دوم درسته و پیغام خطاش هم داره میگه که data مقدارش null هست.

    برای اینکه از مقدار سلول گرید ویو مطمئن بشین BreakPoint بذارید روی خط اول (هر دو روش) و ماوس رو ببرید روی کلمه Value

    یا مقداری توی دیتابیس نیست یا درست واکشی نشده.

  18. #18
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: نحوه خواندن عکس از روی سرور

    آقا عذر میخوام روش دوم شماره ستونش اشتباه بود.درستش کردم ولی الان یه خطای جدید میده:
    Unable to cast object of the 'system.Data.Linq.binary' to tyoe 'System.Byte[]'
    چرا؟

  19. #19

    نقل قول: نحوه خواندن عکس از روی سرور

    مقداری که از نوع system.Data.Linq.binary هست رو با متد ToArray() به آرایه byte[] تبدیل کنید.
    تا حالا با linq به SQL وصل نشدم ولی متن خطا رو که گوگل کردم جواب این بود.

  20. #20
    کاربر دائمی آواتار hahaie
    تاریخ عضویت
    مهر 1389
    محل زندگی
    هنوز ازدواج نکردم!
    پست
    465

    نقل قول: نحوه خواندن عکس از روی سرور

    آقا حل شد خیلی خیلی ممنون.

    var data = (Byte[])(Dgv_Staffs.CurrentRow.Cells[23].Value as System.Data.Linq.Binary).Toarray();


    کاش پستهامون یه تیک Solved داشت.(قابل توجه مدیران)

تاپیک های مشابه

  1. سوال: نمایش عکس از روی سرور
    نوشته شده توسط sajioo در بخش توسعه نرم افزارهای تحت شبکه
    پاسخ: 28
    آخرین پست: یک شنبه 15 تیر 1393, 09:37 صبح
  2. سوال: نمایش عکس از روی سرور
    نوشته شده توسط sajioo در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 6
    آخرین پست: شنبه 24 خرداد 1393, 13:54 عصر
  3. خواندن ساعت از روی سرور
    نوشته شده توسط mojtaheri در بخش VB.NET
    پاسخ: 1
    آخرین پست: پنج شنبه 24 دی 1388, 11:58 صبح
  4. سوال: نحوه خواندن عكس از varbinary
    نوشته شده توسط farzad1 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: پنج شنبه 01 اسفند 1387, 02:31 صبح
  5. خواندن عکس از روی dbf
    نوشته شده توسط ashkan_gorg در بخش Foxpro
    پاسخ: 10
    آخرین پست: سه شنبه 02 مرداد 1386, 15:16 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •