0

以下是我的表格

<form id="postProblemForm" action="/Problems/Post"  method="post">
<input type="text" id="problemSubject" name="problemSubject" class="inp-form"/>
<input type="file" id="uploadFile" name="uploadFile"/>
<textarea rows="" cols="" class="form-textarea" id="problemDescription" name="problemDescription"></textarea>
</form>

我必须将此表格发送给控制器。控制器代码是

[HttpPost]

        public void Post(FormCollection form) 
        {
            string subject = form["problemSubject"];
            string description = form["problemDescription"];
            HttpPostedFileBase photo = Request.Files["uploadFile"];

        }

我可以轻松获得“problemSubject”和“problemDescription”值。但不知道如何获取上传的图像并将其保存在服务器端。我想保存在“~/ProblemImages”。请帮忙。

4

1 回答 1

0

您不能通过 FormCollection 将文件传输到控制器,您需要使用以下内容:

        [HttpPost]
        public ActionResult Save(IEnumerable<HttpPostedFileBase> attachments)
        {
            // The Name of the Upload component is "attachments" 
            foreach (var file in attachments)
            {
                // Some browsers send file names with full path. This needs to be stripped.
                var fileName = Path.GetFileName(file.FileName);
                var physicalPath = Path.Combine(Server.MapPath("~/App_Data"), fileName);

                file.SaveAs(physicalPath);
            }
            // Return an empty string to signify success
            return Content("");
        }

而且你在没有任何插件帮助的情况下这样做也不是一个好主意,我使用了一些插件,我发现 Kendo UI 上传插件很好,这是一个如何工作的链接:

http://demos.kendoui.c​​om/web/upload/async.html

你可以在这里找到示例项目:http: //www.kendoui.c​​om /forums/ui/upload/upoad-with-mvc.aspx

于 2013-04-11T07:57:40.037 回答