MVC Razor文件中的文件上传为空?

时间:2016-12-22 00:22:19

标签: c# asp.net-mvc razor

我在我的网站上使用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;

所以我将我的文件以二进制文件写入我的数据库,但不知道如何在视图和下载中显示内容。

0 个答案:

没有答案