public ActionResult Index(string apiKey, string category, HttpPostedFileBase file)
        {
            if (_apiKey != apiKey) return Error("error api key");
            var filename = file.FileName;
            if (!_extensions.Any(c => filename.EndsWith(c)))
            {
                return Error("error extensions");
            }
            if (string.IsNullOrWhiteSpace(category) || _allowFolders.All(c => category != c))
            {
                return Error("error category");
            }
            var extenssion = Path.GetExtension(filename);
            if (string.IsNullOrWhiteSpace(extenssion) || _extensions.All(c => extenssion != c))
            {
                return Error("error extensions");
            }
            var path = new ResizingPath(category,extenssion);
        
            var physicalPath = Server.MapPath(path.PhysicalPath);
            if (!Directory.Exists(physicalPath))
            {
                Directory.CreateDirectory(physicalPath);
            }
            var physicalFilename= Server.MapPath(path.PhysicalFilename);
            file.SaveAs(physicalFilename);

            return Json(new {success = true,  format = path.VirtualFormatFilename});
        }
示例#2
0
        public ActionResult Index(string apiKey, string category, HttpPostedFileBase file)
        {
            if (_apiKey != apiKey)
            {
                return(Error("Invalid apiKey"));
            }
            var filename = file.FileName;

            if (
                !_allowAllExtenssions &&
                !_extensions.Any(c => filename.EndsWith(c)))
            {
                return(Error("Invalid file extension"));
            }
            if (_allowLocalIpUploadOnly)
            {
                if (!Current.IsLocalIp(Current.RequestIp))
                {
                    return(Error("Invalid IP , only allow local ip to upload"));
                }
            }
            if (string.IsNullOrWhiteSpace(category) || _allowFolders.All(c => category != c))
            {
                return(Error("Invalid category"));
            }
            try
            {
                var extenssion   = Path.GetExtension(filename);
                var path         = new ResizingPath(category, extenssion);
                var physicalPath = Server.MapPath(path.PhysicalPath);
                if (!Directory.Exists(physicalPath))
                {
                    Directory.CreateDirectory(physicalPath);
                }
                var physicalFilename = Server.MapPath(path.PhysicalFilename);
                file.SaveAs(physicalFilename);
                return(Json(new UploadResult
                {
                    IsSuccess = true,
                    FormatUrl = path.VirtualFormatFilename,
                    RawUrl = path.RawPath
                }));
            }
            catch (Exception ex)
            {
                return(Error(ex.Message));
            }
        }
        public ActionResult Index(string apiKey, string category, HttpPostedFileBase file)
        {
            if (_apiKey != apiKey)
            {
                return(Error("error api key"));
            }
            var filename = file.FileName;

            if (!_extensions.Any(c => filename.EndsWith(c)))
            {
                return(Error("error extensions"));
            }
            if (string.IsNullOrWhiteSpace(category) || _allowFolders.All(c => category != c))
            {
                return(Error("error category"));
            }
            var extenssion = Path.GetExtension(filename);

            if (string.IsNullOrWhiteSpace(extenssion) || _extensions.All(c => extenssion != c))
            {
                return(Error("error extensions"));
            }
            var path = new ResizingPath(category, extenssion);

            var physicalPath = Server.MapPath(path.PhysicalPath);

            if (!Directory.Exists(physicalPath))
            {
                Directory.CreateDirectory(physicalPath);
            }
            var physicalFilename = Server.MapPath(path.PhysicalFilename);

            file.SaveAs(physicalFilename);

            return(Json(new { success = true, format = path.VirtualFormatFilename }));
        }