9

我有一个 ASP.NET MVC 网站。我需要一个页面,用户必须在其中输入多个字段,包括图像文件。

我可以找到很多很多关于使用 MVC 上传文件的参考资料。但他们不会将文件作为具有其他字段的表单的一部分上传。

理想情况下,字段和文件将被发送到单个控制器。有小费吗?

4

2 回答 2

11

如果您不使用第三方库,请尝试以下操作:

模型

public class Strategy 
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public byte[] File { get; set; }

    }

看法

 @model TEST.Model.Strategy
 @using (Html.BeginForm("Add", "Strategy", FormMethod.Post, new { @id = "frmStrategy", enctype = "multipart/form-data" }))
        {
            @Html.TextBoxFor(x => x.Name)
            <input id="templateFile" name="templateFile" type="file"  />
            @Html.HiddenFor(x => x.ID)

        }

控制器

[HttpPost]
        public ActionResult Add(Strategy model, HttpPostedFileBase templateFile)
        {


            if (templateFile != null && templateFile.ContentLength > 0)
            {
                try
                {
                    var fname = Path.GetFileName(templateFile.FileName);
                    using (MemoryStream ms = new MemoryStream())
                    {
                      templateFile.InputStream.CopyTo(ms);
                      byte[] array = ms.GetBuffer();
                      model.File = array;
                    }
                    ...
于 2013-06-15T22:02:05.910 回答
6

您可以使用FineUploader看演示

值上传器。它使用纯 Javascript(使用 Iframe 上传文件)

您可能需要使用客户端插件。Plupload是一种可能的选择。这是一个如何将它集成到 MVC 应用程序中的示例。另一个支持此功能的流行插件是Uploadify

Asp.net mvc 3 文件上传使用fileapi

请参阅http://jquery.malsup.com/form/#file-upload上的进度演示 1、2 和 3

参考:http ://forums.asp.net/t/1897410.aspx/1?MVC4+File+Upload

于 2013-06-15T21:55:01.647 回答