예제 #1
0
        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);
        }
예제 #2
0
        /// <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)
            });
        }
예제 #3
0
 /// <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);
        }