public static void CreateUploadGUID(HttpContextBase context) { if (context.Session != null) { context.Session["UploadGUID"] = UrlFriendlyGuid.NewGuid(); } }
public static string StoreMediaTemp(HttpContextBase context, HttpPostedFileBase file, UploadType type, out string thumbPath, out string physicalPath, out TimeSpan duration, out string fileType) { duration = TimeSpan.Zero; fileType = ""; if (context.Session != null) { UrlFriendlyGuid GUID = (UrlFriendlyGuid)context.Session["UploadGUID"]; List <UploadedContent> lastSavedFile = new List <UploadedContent>(); if (context.Session["SavedFileList"] != null) { lastSavedFile = (List <UploadedContent>)context.Session["SavedFileList"]; } physicalPath = TempPathForUpload(context, file.FileName, type, GUID); thumbPath = TempPathForUpload(context, file.FileName, type, GUID, true); //Todo: Use mimes here instead of basic extension check if (ImageExtensions.Contains(Path.GetExtension(file.FileName).ToLower())) { var image = (Bitmap)Image.FromStream(file.InputStream); var fullImage = (Bitmap)ImageUtilities.Resize(image, image.Width, image.Height, RotateFlipType.RotateNoneFlipNone); //No need to resize ImageUtilities.SaveImage(fullImage, physicalPath, ImageFormat.Jpeg, true); var thumbNail = (Bitmap)ImageUtilities.Resize(image, 216, 132, RotateFlipType.RotateNoneFlipNone); ImageUtilities.SaveImage(thumbNail, thumbPath, ImageFormat.Jpeg, true); duration = new TimeSpan(0, 0, 10); fileType = "Image"; } else { var extension = Path.GetExtension(file.FileName); if (extension != null && extension.ToLower() == (".txt")) { FileUtilities.SaveStream(file.InputStream, physicalPath, false); duration = new TimeSpan(0, 0, 20); var text = new StreamReader(physicalPath).ReadToEnd(); var ssHot = CreateImage(text.Substring(0, text.Length > 15?15:text.Length)); thumbPath = thumbPath.Replace(Path.GetExtension(thumbPath), ".jpg"); ssHot.Save(thumbPath); fileType = "Marquee"; } else { var s = Path.GetExtension(file.FileName); if (s != null && (s.ToLower() == (".ppt") || s.ToLower() == (".pps") || s.ToLower() == (".pptx") || s.ToLower() == (".odt"))) // Powerpoint presentation { string path = context.Server.MapPath("~/Logs/" + "serverlog.txt"); Logger.WriteLine(path, "UploadRepository: Powerpoint"); FileUtilities.SaveStream(file.InputStream, physicalPath, false); Logger.WriteLine(path, "UploadRepository: Saved File @ " + physicalPath); var finalPath = Path.ChangeExtension(physicalPath, "wmv"); Microsoft.Office.Interop.PowerPoint._Presentation objPres; var objApp = new Microsoft.Office.Interop.PowerPoint.Application(); objApp.Visible = Microsoft.Office.Core.MsoTriState.msoTrue; objApp.Activate(); try { objPres = objApp.Presentations.Open(physicalPath, MsoTriState.msoTrue, MsoTriState.msoTrue, MsoTriState.msoFalse); //Last value causes powerpoint to physically open // Thread.Sleep(10000); objPres.SaveAs(Path.GetFullPath(finalPath), Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsWMV); Logger.WriteLine(path, "UploadRepository: SaveCopy As Successfully Started @ " + physicalPath + " to " + finalPath); long len = 0; do { System.Threading.Thread.Sleep(500); try { FileInfo f = new FileInfo(finalPath); len = f.Length; Logger.WriteLine(path, "UploadRepository: SaveCopy Current Length " + len); } catch { //continue; } }while (len == 0); objPres.Close(); objApp.Quit(); Marshal.ReleaseComObject(objPres); Marshal.ReleaseComObject(objApp); objApp = null; objPres = null; GC.Collect(); GC.WaitForPendingFinalizers(); Logger.WriteLine(path, "UploadRepository: SaveCopy Done, Creating Thumbnails "); thumbPath = thumbPath.Replace(Path.GetExtension(thumbPath), ".jpg"); // thumbPath = "Content\\Images\\powerpoint.jpg"; duration = VideoUtilities.GetVideoDuration(finalPath); // duration = new TimeSpan(0, 0, 0,60); VideoUtilities.GetVideoThumbnail(finalPath, thumbPath); physicalPath = finalPath; fileType = "Powerpoint"; } catch (COMException exception) { Logger.WriteLine(path, "UploadRepository: " + exception.StackTrace + "\n" + exception.Message + " Powerpoint fin:" + finalPath + " phys:" + physicalPath); // Logger.WriteLine(path, greenlotsInfo.email); // throw exception; } } else // Must Be Video { FileUtilities.SaveStream(file.InputStream, physicalPath, false); thumbPath = thumbPath.Replace(Path.GetExtension(thumbPath), ".jpg"); duration = VideoUtilities.GetVideoDuration(physicalPath); VideoUtilities.GetVideoThumbnail(physicalPath, thumbPath); fileType = "Video"; } } } var uploadedContent = new UploadedContent { MediaGuid = GUID, Type = type, Pictures = new List <string>(2), Duration = duration }; if (physicalPath != null) { uploadedContent.Pictures.Add(ResolvePath(context, physicalPath)); } if (thumbPath != null) { uploadedContent.Pictures.Add(ResolvePath(context, thumbPath)); } if (uploadedContent.Pictures.Count > 0) { lastSavedFile.Add(uploadedContent); } context.Session["SavedFileList"] = lastSavedFile; return("Upload Sucessful"); } thumbPath = ""; physicalPath = ""; return("Failed To Upload File(s)"); }