public ActionResult FileUpload(HttpPostedFileBase pictureToUpload) { var pictureExifs = new pictureExifMetaData(); if (pictureToUpload != null) { string pic = Path.GetFileName(pictureToUpload.FileName); string path = Path.Combine(Server.MapPath("~/"), pic); // file is uploaded pictureToUpload.SaveAs(path); pictureExifs = GetExifs(path); // save the image path path to the database or you can send image // directly to database // in-case if you want to store byte[] ie. for DB using (MemoryStream ms = new MemoryStream()) { pictureToUpload.InputStream.CopyTo(ms); byte[] array = ms.GetBuffer(); } var titi = WebUtility.UrlEncode(path); Uri toto = new Uri(path); WebRequest wr = WebRequest.Create(toto); } // after successfully uploading redirect the user return(View("Index", pictureExifs)); }
public JsonResult GetExifs(string pictureFile) { pictureExifMetaData pictureExifs = new pictureExifMetaData(); // Retrieve picture file path : var pathPictureFile = Server.MapPath(pictureFile); // Check if file path exists : if (System.IO.File.Exists(pathPictureFile)) { // Retrieve directories of picture file properties : var pictureDirectories = ImageMetadataReader.ReadMetadata(pathPictureFile) .ToList(); // 1° Read directories metadata files : // Read "Exif IFD0" directory file : var subIfd0Directory = pictureDirectories.OfType <ExifIfd0Directory>() .FirstOrDefault(); // Read "Exif SubIFD" directory file : var subIfdDirectory = pictureDirectories.OfType <ExifSubIfdDirectory>() .FirstOrDefault(); // Read "MetadataDirectory" directory file : var subMetadataDirectory = pictureDirectories.OfType <FileMetadataDirectory>() .FirstOrDefault(); // 2° Get Exifs data from read file : // Get the camera make : pictureExifs.pictureCameraMake = GetExifData(subIfd0Directory, ExifDirectoryBase.TagMake); // Get the camera model : pictureExifs.pictureCameraModel = GetExifData(subIfd0Directory, ExifDirectoryBase.TagModel); // Get original date time : var datetimeString = GetExifData(subIfdDirectory, ExifDirectoryBase.TagDateTimeOriginal); var picutreDateTimeValues = (!string.IsNullOrEmpty(datetimeString)) ? GetDateTimeValues(datetimeString) : new string[] { pictureExifMetaData.EmptyValue, pictureExifMetaData.EmptyValue }; pictureExifs.pictureOriginalDateTime = pictureExifMetaData.SpaceTabulation + picutreDateTimeValues[0] + pictureExifMetaData.SpaceTabulation + picutreDateTimeValues[1]; // Get aperture value : pictureExifs.pictureApertureValue = GetExifData(subIfdDirectory, ExifDirectoryBase.TagAperture); // Get exposure time : pictureExifs.pictureExposureTime = GetExifData(subIfdDirectory, ExifDirectoryBase.TagExposureTime); // Get iso speed ratings : var isoSpeedValues = GetExifData(subIfdDirectory, ExifDirectoryBase.TagIsoEquivalent); pictureExifs.pictureIsoSpeedRatings = (isoSpeedValues != pictureExifMetaData.TabEmpty) ? isoSpeedValues + pictureExifMetaData.ISO : isoSpeedValues; // Get picture flash : pictureExifs.pictureFlash = GetExifData(subIfdDirectory, ExifDirectoryBase.TagFlash); // Get focal length : pictureExifs.pictureFocalLength = GetExifData(subIfdDirectory, ExifDirectoryBase.TagFocalLength); // Get picture width : pictureExifs.pictureWidth = DisplayPictureDimension(GetExifData(subIfdDirectory, ExifDirectoryBase.TagExifImageWidth)); // Get picture height : pictureExifs.pictureHeight = DisplayPictureDimension(GetExifData(subIfdDirectory, ExifDirectoryBase.TagExifImageHeight)); // Get picture dimensions : pictureExifs.pictureDimensions = (pictureExifs.pictureWidth != pictureExifMetaData.TabEmpty && pictureExifs.pictureHeight != pictureExifMetaData.TabEmpty) ? ( pictureExifMetaData.SpaceTabulation + pictureExifs.pictureWidth + pictureExifMetaData.Times + pictureExifs.pictureHeight + pictureExifMetaData.Pixels ) : pictureExifMetaData.TabEmpty; // Get picture file size : pictureExifs.pictureFileSize = DisplayPictureSize((GetExifData(subMetadataDirectory, FileMetadataDirectory.TagFileSize))); return(Json(pictureExifs, JsonRequestBehavior.AllowGet)); } return(Json(pictureExifs, JsonRequestBehavior.AllowGet)); }