【问题标题】:mvc c# file upload as byte arraymvc c#文件上传为字节数组
【发布时间】:2015-08-29 05:30:42
【问题描述】:

我必须在 UploadFile.cshtml 表单的一次提交中上传文件和其他数据

我有一个基类,它是家庭控制器中 mvc 动作的输入。

下面给出了我的基类、mvc 动作方法和带有 Razor 脚本的 cshtml 部分

在提交 UploadFile.cshtml 表单时,我必须在 mvc 操作中将文件作为字节数组获取

我的基类

public class FileUpload
{
  public string Name {get;set;}
  public int Age {get;set;}
  public byte[] Photo {get;set;}
}

MyMVCAction

[HttpPost]
public void UploadFile(FileUploadobj)
{
  FileUploaddata=obj;
}

Mycshtmlform

@modelMVC.Models.FileUpload
@using(Html.BeginForm("UploadFile","Home",FormMethod.Post))
{

<fieldset>
<legend>File Upload</legend>

<div class="editor-label">
@Html.LabelFor(model=>model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model=>model.Name)
</div>

<div class="editor-label">
@Html.LabelFor(model=>model.Age)
</div>
<div class="editor-field">
@Html.EditorFor(model=>model.Age)
</div>
<div class="editor-label">
@Html.Label("UploadPhoto");
</div>
<div class="editor-field">
<input type="file" id="photo" name="photo"/>
</div>
<p>
<input type="submit" value="Create"/>
</p>

</fieldset>

}

【问题讨论】:

    标签: c# arrays asp.net-mvc upload byte


    【解决方案1】:

    我认为像这样更好地实现它:

    [HttpPost]
    public ActionResult UploadFile(FileUpload obj) 
    {
        using (var binaryReader = new BinaryReader(Request.Files[0].InputStream))
        {
           obj.Photo = binaryReader.ReadBytes(Request.Files[0].ContentLength);
        }  
    
        //return some action result e.g. return new HttpStatusCodeResult(HttpStatusCode.OK);
    }
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2018-03-19
      • 2011-05-25
      • 2019-10-24
      • 1970-01-01
      • 2019-10-18
      • 2018-07-05
      • 2012-10-24
      • 2017-06-16
      • 2020-06-08
      相关资源
      最近更新 更多