MVC文件上传放置代码的位置

时间:2016-03-04 10:15:32

标签: asp.net-mvc vb.net asp.net-mvc-3

好的,所以我试图转向MVC。 我有一个模型,视图和控制器,但现在我想更改应用程序的创建功能。

我正在处理上传,我在我的控制器中有这个系统生成的代码。

html

现在我想改变它,以便

  1. 检查课程,类别和子类别是否存在文件夹。如果没有此文件夹,则必须创建该文件夹。
  2. 通过文件选择框上传文件选择。
  3. 发布文件'命名为db。
  4. 代码不一定是问题,我不知道应该把它放在控制器的哪个位置?

    我已阅读此article但未处理数据库帖子。

    提前谢谢。

2 个答案:

答案 0 :(得分:0)

在您的视图中

<input type="file" name="file">

在您的控制器

public actionresult(HttpPostedFileBase file)
{
string filename = Path.GetFileName(file.FileName);
    string contentType = file.ContentType;
    using (Stream fs = file.InputStream)
    {
        using (BinaryReader br = new BinaryReader(fs))
        {
            byte[] bytes = br.ReadBytes((Int32)fs.Length);
        }
    }
 //Data Context Code here 
  tableName.File= bytes;
  db.add(tableName);
  db.SaveChanges();
}

答案 1 :(得分:0)

您只需在按钮上单击

即可在控制器中添加代码

您的剃刀查看代码

@using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
    { 
        <input type="file" name="file" />
        <input type="submit" name="Submit" id="Submit" value="Upload" />
    }

C#代码

 [HttpPost]
   public ActionResult Upload(HttpPostedFileBase file)
   {
       if (file != null && file.ContentLength > 0)
       {
           var fileName = Path.GetFileName(file.FileName);
           var path = Path.Combine(Server.MapPath("~/Images/"), fileName);
           file.SaveAs(path);
       }

       return RedirectToAction("UploadDocument");
    }
}