Skip to main content

Limit Upload File Type Extensions ASP.NET MVC 5

 

  1. //-----------------------------------------------------------------------  
  2. // <copyright file="AllowExtensionsAttribute.cs" company="None">  
  3. //     Copyright (c) Allow to distribute this code and utilize this code for personal or commercial purpose.  
  4. // </copyright>  
  5. // <author>Asma Khalid</author>  
  6. //-----------------------------------------------------------------------  
  7.   
  8. namespace ImgExtLimit.Helper_Code.Common  
  9. {  
  10.     using System;  
  11.     using System.Collections.Generic;  
  12.     using System.ComponentModel.DataAnnotations;  
  13.     using System.Linq;  
  14.     using System.Web;  
  15.   
  16.     /// <summary>  
  17.     /// File extensions attribute class  
  18.     /// </summary>  
  19.     [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]  
  20.     public class AllowExtensionsAttribute : ValidationAttribute  
  21.     {  
  22.         #region Public / Protected Properties  
  23.   
  24.         /// <summary>  
  25.         /// Gets or sets extensions property.  
  26.         /// </summary>  
  27.         public string Extensions { getset; } = "png,jpg,jpeg,gif";  
  28.  
  29.         #endregion  
  30.  
  31.         #region Is valid method  
  32.   
  33.         /// <summary>  
  34.         /// Is valid method.  
  35.         /// </summary>  
  36.         /// <param name="value">Value parameter</param>  
  37.         /// <returns>Returns - true is specify extension matches.</returns>  
  38.         public override bool IsValid(object value)  
  39.         {  
  40.             // Initialization  
  41.             HttpPostedFileBase file = value as HttpPostedFileBase;  
  42.             bool isValid = true;  
  43.   
  44.             // Settings.  
  45.             List<string> allowedExtensions = this.Extensions.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();  
  46.   
  47.             // Verification.  
  48.             if (file != null)  
  49.             {  
  50.                 // Initialization.  
  51.                 var fileName = file.FileName;  
  52.   
  53.                 // Settings.  
  54.                 isValid = allowedExtensions.Any(y => fileName.EndsWith(y));  
  55.             }  
  56.   
  57.             // Info  
  58.             return isValid;  
  59.         }  
  60.  
  61.         #endregion  
  62.     }  

Comments

Popular posts from this blog

Cannot access a disposed object. A common cause of this error is disposing a context that was

  Cannot access a disposed object. A common cause of this error is disposing a context that was resolved from dependency injection and then later trying to use the same context instance elsewhere in your application. This may occur if you are calling Dispose() on the context, or wrapping the context in a using statement. If you are using dependency injection, you should let the dependency injection container take care of disposing context instances. Object name: 'PropertyContext'.  public class CustomerHub : Hub     {         public readonly ICustomerService _customerService;         private readonly IServiceScopeFactory _serviceScopeFactory;         public CustomerHub(ICustomerService service, IServiceScopeFactory serviceScopeFactory)         {             _customerService = service;             _serviceScopeFactory = serviceSco...