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; }
//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); }