我将此项目部署在azure网站(在一个实例上运行)上,该网站获得不同的字段(名称,年龄......),并允许上传图像。然后将所有数据存储在azure数据库中,除图像外,其他工作正常。所以问题是: 我无法保存上传的文件(在本地工作正常但在部署时我得到“无法找到路径的一部分'D:....”错误。 我已经阅读了帖子,并尝试将文件保存在Temp和localresources中,但我必须丢失一些内容或实现不正确,我也无法访问blob存储并且已经挣扎了一段时间了。
Azure和mvc不是我的区域,所以我很感激如何保存上传的文件(我想存储在数据库中)或者甚至是链接。 非常感谢先进。
这是我尝试保存图片的方式和位置:
[HttpPost]
public ActionResult Create(HttpPostedFileBase file, [Bind(Include = "StudentId,Name,Age")] student13 student13)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
file.SaveAs(path);
}
这是观点:
<form action="" method="post" enctype="multipart/form-data">
<label for="file">picture:</label>
<input type="file" name="file" id="file" class="form-control" />
<input type="submit" class="btn btn-default" value="Create" />
</form>
答案 0 :(得分:0)
可以在Azure网站的文件系统上进行写入,但是您的写入权限仅限于应用程序的根文件夹。您可以在Server.MapPath("~/from_here_on")
内的任何地方书写,查看this了解详情。
您可以参考How to Use Azure Blob Storage with Azure Web Sites将您的网站与azure存储相关联,同时将图像保存到存储空间。以下是有关Azure存储Get started with Azure Blob storage using .NET的最新文档。希望它有所帮助。
[HttpPost]
public ActionResult ImageUpload()
{
var image = Request.Files["image"];
if (image == null)
{
ViewBag.UploadMessage = "Failed to upload image";
}
else
{
ViewBag.UploadMessage = String.Format("Got image {0} of type {1} and size {2}",
image.FileName, image.ContentType, image.ContentLength);
// TODO: actually save the image to Azure blob storage
}
return View();
}