public IHttpActionResult Upload()
        {
            var httpRequest = HttpContext.Current.Request;

            if (httpRequest.Files.Count > 0)
            {
                var docfiles = new List <string>();
                foreach (string file in httpRequest.Files)
                {
                    var postedFile = httpRequest.Files[file];
                    if (postedFile == null)
                    {
                        return(BadRequest());
                    }
                    var uploadedMedia = new UploadedMedia();
                    uploadedMedia.FileName    = postedFile.FileName;
                    uploadedMedia.Length      = postedFile.ContentLength;
                    uploadedMedia.ContentType = postedFile.ContentType;
                    using (var reader = new System.IO.BinaryReader(postedFile.InputStream))
                    {
                        uploadedMedia.Stream = reader.ReadBytes(postedFile.ContentLength);
                    }
                    this._mediaUploadService.Process(uploadedMedia, NZDataClassification.Unspecified);
                }
            }
            else
            {
                return(BadRequest());
            }

            return(Ok());
        }
        public ActionResult Upload(MediaUpload mediaUpload, HttpPostedFileBase file)
        {
            try
            {
                if (file.ContentLength > 0)
                {
                    var uploadedMedia = new UploadedMedia();
                    uploadedMedia.FileName    = file.FileName;
                    uploadedMedia.Length      = file.ContentLength;
                    uploadedMedia.ContentType = file.ContentType;

                    using (var reader = new System.IO.BinaryReader(file.InputStream))
                    {
                        uploadedMedia.Stream = reader.ReadBytes(file.ContentLength);
                    }
                    this._mediaUploadService.Process(uploadedMedia, mediaUpload.DataClassification);
                    ViewBag.Message = "File Uploaded Successfully!!";
                }
                else
                {
                    ViewBag.Message = "No file uploaded.";
                }

                return(View());
            }
            catch
            {
                ViewBag.Message = "File upload failed!!";
                return(View());
            }
        }
        private void ScanFile(ref UploadedMedia uploadedMedia, ref MediaMetadata mediaMetadata)
        {
            var scanResults = this._mediaMalwareVerificationService.Validate(uploadedMedia.Stream, uploadedMedia.FileName,
                                                                             uploadedMedia.ContentType);

            mediaMetadata.LatestScanDateTimeUtc       = this._universalDateTimeService.NowUtc().UtcDateTime;
            mediaMetadata.LatestScanResults           = scanResults.LatestScanResults;
            mediaMetadata.LatestScanMalwareDetetected = scanResults.LatestScanMalwareDetected;
        }
Exemple #4
0
        //Service to create a metadata object that describes the uploaded Media file.
        public MediaMetadata Create(UploadedMedia uploadedMedia, NZDataClassification dataClassification)
        {
            var result = new MediaMetadata();

            result.ContentSize          = uploadedMedia.Length;
            result.SourceFileName       = uploadedMedia.FileName;
            result.DataClassificationFK = dataClassification;
            result.ContentHash          = uploadedMedia.Stream.GetHashAsString(this._metadataServiceConfiguration.MediaManagementConfiguration.HashType);
            result.MimeType             = uploadedMedia.ContentType ?? "Unknown";

            result.UploadedDateTimeUtc = this._universalDateTimeService.NowUtc().UtcDateTime;

            return(result);
        }
        public ActionResult MediaMetadata(MediaUpload mediaUpload, HttpPostedFileBase file)
        {
            try
            {
                if (file.ContentLength > 0)
                {
                    var uploadedMedia = new UploadedMedia();
                    uploadedMedia.FileName    = file.FileName;
                    uploadedMedia.Length      = file.ContentLength;
                    uploadedMedia.ContentType = file.ContentType;

                    using (var reader = new System.IO.BinaryReader(file.InputStream))
                    {
                        uploadedMedia.Stream = reader.ReadBytes(file.ContentLength);

                        this._mediaUploadService.Process(uploadedMedia, mediaUpload.DataClassification);
                        ViewBag.Message = "File Uploaded Successfully!!";

                        if (StringComparer.InvariantCultureIgnoreCase.Compare(mediaUpload.SomeCustomData,
                                                                              "Directory") == 0)
                        {
                            long check = file.InputStream.Position;
                            //Rewind:
                            file.InputStream.Position = 0;
                            //_studentRawImportService.Do(file.InputStream);
                        }
                        //Place Using outside of Do, as it will close the underlying Stream (not good)
                    }
                }
                else
                {
                    ViewBag.Message = "No file uploaded.";
                }

                return(View());
            }
            catch
            {
                ViewBag.Message = "File upload failed!!";
                return(View());
            }
        }
        public void Process(UploadedMedia uploadedMedia, NZDataClassification dataClassification)
        {
            //First, build a summary of the uploaded file:
            MediaMetadata mediaMetadata =
                this._mediaMetadataService.Create(uploadedMedia, dataClassification);


            ScanFile(ref uploadedMedia, ref mediaMetadata);
            if (mediaMetadata.LatestScanResults == "content.en.language.nsfw")
            {
                mediaMetadata.LatestScanMalwareDetetected = false;
            }

            if (mediaMetadata.LatestScanMalwareDetetected.HasValue && mediaMetadata.LatestScanMalwareDetetected.Value == false)
            {
                //TODO: TO BE REVISITED
                mediaMetadata.LocalName = Guid.NewGuid().ToString();

                this._storageService.Persist(uploadedMedia.Stream, mediaMetadata.LocalName);
            }

            this._repositoryService.AddOnCommit(Constants.Db.AppCoreDbContextNames.Core, mediaMetadata);
        }