如何在已部署的azure网站中保存图像?

时间:2016-05-24 00:30:25

标签: azure upload temp

我将此项目部署在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>

1 个答案:

答案 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();
}