我在azure上浏览我的网站,每个文件夹都存在于azure的网站目录中,但uploadimages是我的子文件夹,内容在wwwroot中不存在,图片也没有上传 我在用 var path = Path.Combine(Server.MapPath("〜/ Content / UploadImages /")+ filename); 与文档上传相同
答案 0 :(得分:0)
根据您的描述,我已在我身边进行了测试,请按照以下方式查看是否可以帮助您。 正如您所说,您通过以下代码获得了目标文件路径: var path = Path.Combine(Server.MapPath(“〜/ Content / UploadImages /”)+ filename); 在上传文件之前,请确保您的网络服务器“〜/ Content / UploadImages /”中的目录已存在。
这是我的测试代码:
MVC控制器方法
[HttpPost]
public JsonResult UploadFiles()
{
try
{
foreach (string file in Request.Files)
{
var fileContent = Request.Files[file];
if (fileContent != null && fileContent.ContentLength > 0)
{
var stream = fileContent.InputStream;
var fileName = Path.GetFileName(fileContent.FileName);
string baseDir = Server.MapPath("~/Content/UploadImages/");
if (!Directory.Exists(baseDir))
Directory.CreateDirectory(baseDir);
var path = Path.Combine(baseDir, fileName);
using (var fileStream = System.IO.File.Create(path))
{
stream.CopyTo(fileStream);
}
}
}
}
catch (Exception e)
{
return Json(new
{
Flag = false,
Message = string.Format("File Uploaded failed with exception:{0}", e.Message)
});
}
return Json(new
{
Flag = true,
Message = "File uploaded successfully!"
});
}
此外,为了长期考虑,您可以将文件存储在Azure Blob存储上,这可以为您带来一些好处,例如:
1.将图像或文档直接提供给浏览器
2.分发访问的文件
3.当您扩展您的站点时,您的站点可以在多个Web服务器实例中运行,这些实例可以访问相同的文件和docs同时
有关详情,请参阅此链接:https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/