【发布时间】:2020-05-14 07:19:48
【问题描述】:
我有一个 Web 应用程序视图,其中用户上传文件以预填写表单。表单所在的视图有两个Html.BeginForm声明,一个用于上传文件,一个用于提交填写好的表单。当我使用 IIS Express 在本地调试时一切正常,但是当我部署到我的开发服务器时,文件不会上传。我希望有人能够提供一些关于为什么会发生这种情况的见解。
文件上传摘自视图:
@using (Html.BeginForm("Populate", "ScProject", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
//file upload and submit button
}
来自控制器的文件上传摘录:
[HttpPost]
public ActionResult Populate(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
try
{
string path = Path.Combine(Server.MapPath("~/Content"), System.IO.Path.GetFileName(file.FileName));
file.SaveAs(path);
return RedirectToAction("Create", new { file = Path.GetFileName(file.FileName) });
}
catch (Exception ex)
{
...omitted error logging code...
return RedirectToAction("Create");
}
else
{
...omitted error logging code...
return RedirectToAction("Create");
}
}
RedirectToAction("Create", new { file = Path.GetFileName(file.FileName) }); 重新加载视图并使用上传的文件填充表单。我试图通过输入一个 url:../ScProject/Create?file=upload.pptx 使用预先上传的文件执行此操作,这再次在 IIS Express 上运行良好,但在开发服务器上失败。如果有人能提供任何见解,将不胜感激。
【问题讨论】:
-
当您说失败时,您是否看到任何错误或只是没有在服务器上保存文件?
标签: c# asp.net-mvc visual-studio iis iis-express