예제 #1
0
 /// <summary>
 /// 上传视频
 /// </summary>
 /// <param name="postFile"></param>
 /// <param name="isConvert">是否进行格式转换</param>
 /// <param name="savePath">视频保存的路径</param>
 /// <param name="configSize">上传视频限制的大小</param>
 /// <param name="isGetImg">是否获取视频缩略图</param>
 /// <param name="isGetSpan">是否获取视频的时间</param>
 /// <param name="model">返回处理结果</param>
 /// <param name="extend">转换为哪种格式的视频 eg:".flv"</param>
 /// <returns></returns>
 public bool UploadVideo(HttpPostedFile postFile, bool isConvert, string savePath, int?configSize, bool isGetImg, bool isGetSpan, out VideoModel model, string extend)
 {
     model = new VideoModel();
     if (postFile != null)
     {
         if (configSize.HasValue)
         {
             if (postFile.ContentLength > configSize.Value)
             {
                 _errorMessage = "上传文件过大";
                 return(false);
             }
         }
         #warning   目录待统一
         string ext = Path.GetExtension(postFile.FileName);
         ext = String.IsNullOrWhiteSpace(ext) ? "" : ext.ToLower();
         if (!AllowFileExt.Contains(ext) || String.IsNullOrWhiteSpace(ext))
         {
             _errorMessage = "上传文件格式不正确!";
             return(false);
         }
         string fileName = Guid.NewGuid().ToString("N", System.Globalization.CultureInfo.InvariantCulture) + ext;
         string pathStr  = HttpContext.Current.Server.MapPath("/" + savePath);
         if (!System.IO.Directory.Exists(pathStr))
         {
             System.IO.Directory.CreateDirectory(pathStr);
         }
         string path = savePath + fileName;
         postFile.SaveAs(HttpContext.Current.Server.MapPath(path));
         model.SavePath = path;
         if (isConvert)
         {
             string convertPath  = Path.ChangeExtension(path, extend);
             string destFileName = Path.Combine(pathStr, Path.ChangeExtension(postFile.FileName, extend));
             ConvertFlv(HttpContext.Current.Server.MapPath(path), destFileName);
             model.SavePath = convertPath;
         }
         if (isGetImg)
         {
             string imgpath     = Path.ChangeExtension(path, ".jpg");
             string jpgFileName = Path.Combine(HttpContext.Current.Server.MapPath(path), Path.ChangeExtension(path, ".jpg"));
             CreateThumb(HttpContext.Current.Server.MapPath(path), HttpContext.Current.Server.MapPath(jpgFileName));
             model.ImgPath = imgpath;
         }
         if (isGetSpan)
         {
             TimeSpan totalTime = GetVideoTotalTime(HttpContext.Current.Server.MapPath(path));
             int      ts        = TimeParser.TimeToSecond(totalTime.Hours, totalTime.Minutes, totalTime.Seconds);
             model.VideoSpan = ts;
         }
         return(true);
     }
     else
     {
         return(false);
     }
 }