我一直在尝试使用我已添加到应用程序作为参考的 MediaInfo.dll 获取已上传到 MVC4 应用程序的一段视频内容的持续时间字符串。
使用以下代码在本地键入文件的位置时,我可以成功地查看文件的详细信息:
MediaFile uploadedFile = new MediaFile("C:\\Users\\jp\\Desktop\\Quarry.mp4");
string duration = uploadedFile.General.DurationString.ToString();
但是,当我尝试在上传的文件上使用它时,我没有得到我预期的信息。我的控制器如下:
[HttpPost, ValidateInput(true)]
public ActionResult NewContent(HttpPostedFileBase postedFile, string username, FormCollection form)
{
if (postedFile != null)
{
HttpPostedFileBase postedFileCopy = postedFile;
postedFileCopy.InputStream.Position = 0;
Stream stream = postedFile.InputStream;
MediaFile uploadedFile = new MediaFile(Server.MapPath(postedFile.FileName));
string duration = uploadedFile2.General.DurationString.ToString();
string[] name = form.GetValues("name");
string[] author = form.GetValues("author");
string[] description = form.GetValues("description");
TimeSpan videoDuration = TimeSpan.Parse(duration);
try
{
avm.AddContent(postedFile, stream, Convert.ToString(name[0]), Convert.ToString(author[0]), Convert.ToString(description[0]), videoDuration);
return RedirectToAction("Contents", "Admin");
}
catch (Exception ex)
{
System.Diagnostics.EventLog.WriteEntry("Application", ex.Message, System.Diagnostics.EventLogEntryType.Error);
return RedirectToAction("Unsuccessful", "Admin");
}
}
else
return RedirectToAction("NewCourse", "Admin");
}
我努力了:
MediaFile uploadedFile = new MediaFile(Server.MapPath(postedFile.FileName));
MediaFile uploadedFile = new MediaFile(postedFile.FileName);
MediaFile uploadedFile = new MediaFile(postedFile.toString());
MediaFile uploadedFile = new MediaFile(System.IO.Path.GetFullPath(postedFile.FileName);
关于如何让MediaInfo以能够读取本地文件的相同方式识别 postedFile 的任何想法。或者我如何检索客户端计算机文件位置的路径。