我目前遇到的问题是将图像上传到文件服务器的MVC应用程序。
public ActionResult UploadFile(HttpPostedFileBase file, string newFileName)
{
try
{
if (file.ContentLength > 0)
{
Bitmap bm = new Bitmap(file.InputStream);
Bitmap final = new Bitmap(bm, 150, 150);
final.SetResolution(72.0F, 72.0F);
string _FileName = newFileName + ".jpg";
string _path = Path.Combine(ConfigurationManager.AppSettings["imageDirectory"], _FileName);
final.Save(_path,System.Drawing.Imaging.ImageFormat.Jpeg);
}
ViewBag.Message = "File Uploaded Successfully!!";
return RedirectToAction("Index");
}
catch
{
ViewBag.Message = "File upload failed!!";
return RedirectToAction("Error");
}
}
因此用户选择一个文件并将其上传到Windows共享。此代码在我的计算机上使用IISExpress和我们的测试服务器。当部署到我们的生产服务器时,它似乎正在工作,它重定向到索引但文件服务器上的文件永远不会更改。
IISExpress,测试服务器和Production Server都指向同一个文件目录。
我在对此进行故障排除时遇到的另一个问题是,在使用应用程序的FQDN时,文件服务器中的图像不会显示。因此http://[appName].[domain].[com]无法显示图片,但http://[appName]会显示图片。只是另一个奇怪的问题,根本没有出现在测试中。
答案 0 :(得分:1)
这是问题和解决方案;
如果它适用于您的开发系统,那么问题是您没有给app_data文件夹提供readwrite访问权限。 HttpPostedFileBase总是暂时将文件上传到App_Store,并从那里将Save()方法从中获取文件。如果您没有App_Data文件夹,请创建它。您必须对服务器上的IIS_USERS提供完整的ReadWrite访问权限