以下是我的表格
<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”中。请帮助。
答案 0 :(得分: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.com/web/upload/async.html
你可以在这里找到示例项目: http://www.kendoui.com/forums/ui/upload/upoad-with-mvc.aspx