初めてWebサーバーにMVC Webサイトをアップロードしています。ファイルアップロードオプション以外はすべてうまくいった。私は、ファイルをアップロードしようとするたびに、それは私を促し、このエラー:mvcでファイルをアップロードできません
The SaveAs method is configured to require a rooted path, and the path '' is not rooted.
エラーの詳細は何とか私は私のローカルマシン上に作成された私のプロジェクトのパスを示しています。
System.Web.HttpException (0x80004005): The SaveAs method is configured to require a rooted path, and the path '' is not rooted. at Printrpk.Controllers.ProductController.Create(ProductModels product) in C:\Projects\Carting\Carting\Carting\Controllers\ProductController.cs:line 145
私のコードが間違っているかどうかを確認するために複数の方法を試しましたが、動作させることができませんでした。
これは私が任意の画像をアップロードしていない場合は、このコントローラは正常に動作しますアクション
foreach (string fileName in Request.Files)
{
HttpPostedFileBase file = Request.Files[fileName];
fName = file.FileName;
if (file != null && file.ContentLength > 0)
{
var originalDirectory = new DirectoryInfo(string.Format("{0}images", Server.MapPath(@"/")));
var pathString = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ProductImages");
var filename = Path.GetFileName(file.FileName);
bool isExists = System.IO.Directory.Exists(pathString);
if (!isExists)
{
System.IO.Directory.CreateDirectory(pathString);
}
path = string.Format("{0}//{1}", pathString, filename);
file.SaveAs(path);
}
}
を作成の下に書かれているものです。すでにweb-serverを指しているweb.configを確認しました。
これは、仮想パスに対応する物理パスを取得するために私のベースフォルダ
あなたはAppDomain.CurrentDomain.BaseDirectoryの値をチェックしていますか? – DanielVorph
'Server.MapPath()'を使用します。 'var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(Server.MapPath( "〜/ ProductImages")、fileName); file.SaveAs(path); ' –
@StephenMuecke私はすでにこれを試しました。動作しません。奇妙な – ashhad