private bool UploadFile(HttpRequestBase request, Book book) { // Files count should be 1. foreach (string file in Request.Files) { if (Request.Files[file] == null || Request.Files[file].ContentLength == 0) { continue; } book.DownloadAddress = MvcApplication.Current.ContentSaver .Store(book.Id + Path.GetExtension(Request.Files[file].FileName), Request.Files[file].InputStream); book.MimeType = OpdsHelper.DetectFileMimeType(Request.Files[file].FileName); book.FileSize = Request.Files[file].ContentLength; return(true); } return(false); }
/// <summary> /// /// </summary> /// <param name="path"></param> /// <param name="id"></param> /// <returns></returns> protected virtual object GetFileOpdsInfo(string path, string id) { var fileInfo = new FileInfo(path); var fileVersionInfo = FileVersionInfo.GetVersionInfo(path); return(new { Id = id, Title = fileInfo.Name, Summary = fileVersionInfo.FileDescription, UpdateTime = fileInfo.LastWriteTime, OpdsDataType = OpdsDataType.Detial, Length = fileInfo.Length, CreateTime = fileInfo.CreationTime, Language = fileVersionInfo.Language, CopyRight = fileVersionInfo.LegalCopyright, Publisher = fileVersionInfo.CompanyName, AuthorName = fileVersionInfo.CompanyName, MediaType = OpdsHelper.DetectFileMimeType(path) }); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Download(string id) { // Given the file name to force download instead of opening within the browser. return(File(Path.Combine("~/App_Data", id), OpdsHelper.DetectFileMimeType(id), Path.GetFileName(id))); }
public void DetectFileMimeTypeTest() { var mime = OpdsHelper.DetectFileMimeType(@"C:\a.txt"); Assert.AreEqual("text/plain", mime); }