在本地计算机上,下面的代码运行正常,但是当托管在远程服务器上时,它似乎找不到图像文件。我创建了Image文件夹,并为其提供了读/写权限
// -------------------------------------------- <登记/> 错误
Server Error in '/' Application.
Could not find file 'IdImage.jpg'.
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。
Exception Details: System.IO.FileNotFoundException: Could not find file 'IdImage.jpg'.
代码如下 // ---------------------------------------------
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Images/Photo"), fileName);
file.SaveAs(path);
}
return RedirectToAction("Index");
}
答案 0 :(得分:0)
这看起来非常像权限问题。您说您已经创建了Images
文件夹并赋予了它读/写权限,但是从您在代码中看到的内容中,您试图将图像存储在名为Photo
的子文件夹中。因此,请确保您也创建了此文件夹,并为其提供了读/写权限。还要确保将这些权限授予正确的帐户 - 在IIS中配置的帐户,以运行托管应用程序的应用程序池。
答案 1 :(得分:0)
我使用此代码
[HttpPost]
public ActionResult Upload(System.Web.HttpPostedFileBase file)
{
string filename = Server.MapPath("~/files/somename");
file.SaveAs(filename);
return RedirectToAction("Index");
}
在视图中
@{
ViewBag.Title = "Upload";
}
<h2>
Upload</h2>
@using (Html.BeginForm(actionName: "Upload", controllerName: "User",
method: FormMethod.Post,
htmlAttributes: new { enctype = "multipart/form-data" }))
{
<text>Upload a photo:</text> <input type="file" name="photo" />
<input type="submit" value="Upload" />
}