我在我的网站上使用MVC5和Razor。
我的网站应该具有上传文件的功能(它可以是文本文件,如.txt或.doc,.docx等)。
我设法将文件保存到我的数据库,但不知道如何阅读它,也不知道如何显示文件(文本)的内容。
我的申请人模型:
public class Applicant
{
// Some irrelevant properties of applicant like name, gender etc.
[Display(Name = "CV: ")]
public virtual ICollection<File> uploadedFiles { get; set; }
}
我的文件模型:
public class File
{
[Key]
public int fileID { get; set; }
public string fileName { get; set; }
public int applicantID { get; set; }
public byte[] Content { get; set; }
public string ContentType { get; set; }
public virtual Applicant Applicant { get; set; }
}
我的控制器POST方法:
// POST: Prijava/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "irrelevant properties,uploadedFiles")] Applicant prijava, HttpPostedFileBase upload)
{
if (ModelState.IsValid)
{
if (upload != null && upload.ContentLength > 0)
{
var cv = new Models.File
{
fileName = Path.GetFileName(upload.FileName),
ContentType = upload.ContentType
};
using (var reader = new BinaryReader(upload.InputStream))
{
cv.Content = reader.ReadBytes(upload.ContentLength);
}
prijava.uploadedFiles = new List<Models.File> { cv };
ViewBag.Message = "File uploaded successfully";
}
else
{
ViewBag.Message = "File upload failed.";
}
}
}
为了测试目的,上传的.txt文件包含文本:&#34;这是测试文件!!!&#34;,在数据库文件中存储如:&#34; 0x5448495320495320544553542046494C4520212121&#34;
所以我将我的文件以二进制文件写入我的数据库,但不知道如何在视图和下载中显示内容。