عنوان:

‫چگونه بفهمیم فایل انتخابی واقعا عکسه یا نه ؟


نویسنده: شریعتی پیام
تاریخ: ۱۴۰۰/۱۲/۱۱ ۱:۵۹
آدرس: www.dntips.ir

موقعی که از کاربر یک عکس رو دریافت میکنیم نیازه که بررسی شه که آیا این فایل واقعا عکسه یا نه.

برای کنترل این موضوع Attribute‌های اعتبارسنجی بهترین انتخاب هستن و با یکبار افزودن میتوان از آنها در هر جایی استفاده کرد.

سمت سرور اینکار به این صورت هست ^

اما سمت کلاینت حتی اگه بیایم فرمت فایل رو هم بررسی کنیم بازهم جوابگو نیست و میشه به راحتی فرمت یک فایل ZIP رو به PNG تغییر داد و ارسالش کرد و عملا اعتبارسنجی سمت کلاینت کار خاصی رو انجام نمیده.

در این پروژه Attribute اعتبارسنجی برای بررسی فایل که آیا واقعا عکس هست یا نه نوشته شده، هم سمت کلاینت و هم سمت سرور.

نحوه انجام کار: برای سمت کلاینت عکسی که کاربر وارد میکنه رو در داخل تگ IMG نمایش میده و اگه عکس به درستی لود بشه رخداد OnLoad تگ IMG فراخوانی میشه و اعتبارسنجی پاس میشه.

تگ IMG به کاربر نمایش داده نمیشه و به صورت display: none هستش.

از این Attribute اعتبارسنجی در کنار Attribute‌های کنترل حجم فایل هم میشه استفاده کرد که قبل از اینکه بخوایم بررسی کنیم که آیا فایل واقعا عکسه یا نه ابتدا حجم فایل مورد بررسی قرار بگیره.



مشاهده مطلب اصلی

نظرات

  • پرهام دستغیب در ۱۴۰۱/۰۱/۱۹ ۲۰:۱۴
    برای کد زیر یک هشدار صادر میشه. 
    Image.FromStream(file.OpenReadStream());
    متن هشدار: 
    This call site is reachable on all platforms. 'Image.FromStream(Stream)' is only supported on: 'windows'
    در جستجویی که انجام دادم پیشنهاد مایکروسافت استفاده از ImageSharp ، SkiaSharp ، Microsoft.Maui.Graphics  به جای System.Drawing برای حالت cross platform هست.