私はMVCアプリを持っていて、ftpアクセスしかできないサーバーにデプロイしました。アプリの名前はtest.foo.com
. ユーザーがアプリに写真をアップロードするバックエンドがあります。すべてがうまく機能します。コードは次のとおりです。
//in web config this is the value
<add key="NewsImagesPath" value="~/App_Data/NewsImages/" />
// this is in controller
private static readonly string news_images_path = ConfigurationManager.AppSettings["NewsImagesPath"];
// in the method
String uploadedFile = fileUploadHelper.UploadFile(file, Server.MapPath(news_images_path));
ここでは、アップロードされたパスを返す fileuploadhelper:
public class FileUploadHelper
{
public string UploadFile(HttpPostedFileBase file, string path)
{
if (file != null && file.ContentLength > 0)
{
FileInfo fileInfo = new FileInfo(file.FileName);
string fileName = Guid.NewGuid() + fileInfo.Extension;
var uploadPath = Path.Combine(path, fileName);
file.SaveAs(uploadPath);
return uploadPath;
}
return null;
}
}
さて、このコードは正常に動作します。
問題は、このアプリが にデプロイされたときですfoo.com
。写真はまだtest.foo.com
App_Data フォルダーにアップロードされています。
例: foo.com から画像をアップロードしており、画像は次の場所に保存されています。
c:\inetpub\wwwroot\test.foo.com\App_Data
一方、それはに行く必要があります
c:\inetpub\wwwroot\foo.com\App_Data
なぜこうなった?
サーバー、IIS がどのように構成されているかわかりません。