文件在Azure上的保存路径

时间:2018-10-16 20:14:34

标签: c# azure asp.net-core

我是.NET Core和Azure的新手,我已经使用SQL-Server创建了一个API,并且使用了Dapper来保存带有图像的POST表单数据的数据库路径,如下所示:

private async Task<string> WriteFile(Image image)
{
    String fileName;
    IFormFile file = image.image;
    long Id = image.ShopId;

    try
    {
        var extension = "." + file.FileName.Split('.')[file.FileName.Split('.').Length - 1];
        fileName = Guid.NewGuid().ToString() + extension; 
        var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\cccc", fileName);

        using (var bits = new FileStream(path, FileMode.Create))
        {
            await file.CopyToAsync(bits);
        }

        Image imageupload = new Image(path,Id);

        toDb(imageupload);
    }
    catch (Exception e)
    {
        return e.Message;
    }

    return fileName;
}

public void toDb(Image imageUpload)
{
    string path = imageUpload.path;
    long ShopId = unchecked((int)imageUpload.ShopId);

    using (IDbConnection dbConnection = Connection)
    {
        string sQuery = "UPDATE shop SET path = @path WHERE ShopId = @ShopId ;"; 

        dbConnection.Open();
        dbConnection.Execute(sQuery, new {path = path,ShopId = ShopId});
    }
}

在我部署到Azure之前,它返回了映像路径"F:\\xxxx\\yyyyy\\zzzzzz\\aaaaaa\\wwwroot\\bbbbbb\\5d665cbc-679d-4926-862b-4e10f9358e8a.png"

部署后,它返回我的映像路径

D:\\home\\site\\wwwroot\\wwwroot\\Shops\\a81c757e-df7e-4cf6-b778-20fc5fcf922d.png

如果可以查看图像,是否可以使用此路径查看图像; 如果错误是我的路径,该文件试图保存到该如何解决?如果我将保存的路径更改为wwwroot\\bbbbbb\\5d665cbc-679d-4926-862b-4e10f9358e8a.png,是否也可以从客户端应用程序查看文件。我该如何解决?

1 个答案:

答案 0 :(得分:1)

  

如果可以查看图像,是否可以使用此路径查看图像。

是的,在Azure WebApp中D:\ home已为我们共享。我们可以从此tutorial获取有关Azure WebApp沙箱的更多信息。

我们可以使用Kudu(要使用DEPLOYMENT凭据访问您的KUDU控制台,请导航至https://*****.scm.azurewebsites.net,其中*****是您的Web应用程序的名称。)查看,上传或下载文件。

我们还可以使用FTP工具将文件下载或上传到Azure WebApp站点。

  

如果也无法从客户端应用程序查看文件,是否可以。我该如何解决?

我建议您可以将图像信息存储到Azure storge。我们很容易从客户端访问。有关如何使用Azure存储的详细信息,请参阅此document