【问题标题】:MVC File upload Where to put codeMVC 文件上传 代码放在哪里
【发布时间】:2016-06-18 00:43:30
【问题描述】:

好的,所以我正在尝试转向 MVC。 我已经制作了模型、视图和控制器,但现在我想更改应用的创建功能。

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

Function Create(<Bind(Include:="Id,Course,Category,SubCategory,FileName,FileType,UploadedBy,DateUploaded")> ByVal acAsset As acAsset) As ActionResult
        If ModelState.IsValid Then
            db.Assets.Add(acAsset)
            db.SaveChanges()
            Return RedirectToAction("Index")
        End If
        Return View(acAsset)
    End Function

现在我想改变它,这样它就可以了

  1. 检查课程、类别和子类别的文件夹是否存在。如果此文件夹不存在,则必须创建它。
  2. 通过文件选择框选择上传文件。
  3. 将文件名发布到数据库。

代码不一定是问题,我只是不确定应该把控制器放在哪里?

我已阅读此article,但未处理 DB 帖子。

提前谢谢你。

【问题讨论】:

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


    【解决方案1】:

    在你看来

    <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();
    }
    

    【讨论】:

      【解决方案2】:

      您只需将代码添加到您想要点击按钮的控制器中

      您的 Razor 查看代码

      @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");
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-10-07
        • 2012-08-20
        • 1970-01-01
        • 1970-01-01
        • 2012-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多