我是.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
,是否也可以从客户端应用程序查看文件。我该如何解决?
答案 0 :(得分:1)
如果可以查看图像,是否可以使用此路径查看图像。
是的,在Azure WebApp中D:\ home已为我们共享。我们可以从此tutorial获取有关Azure WebApp沙箱的更多信息。
我们可以使用Kudu(要使用DEPLOYMENT凭据访问您的KUDU控制台,请导航至https://*****.scm.azurewebsites.net,其中*****是您的Web应用程序的名称。)查看,上传或下载文件。
我们还可以使用FTP工具将文件下载或上传到Azure WebApp站点。
如果也无法从客户端应用程序查看文件,是否可以。我该如何解决?
我建议您可以将图像信息存储到Azure storge。我们很容易从客户端访问。有关如何使用Azure存储的详细信息,请参阅此document。