繁体   English   中英

Azure 应用服务 - 写入文件系统 - ASP.NET Web 应用程序

[英]Azure App Service - write to filesystem - ASP.NET web application

我有一个在 Visual Studio 2017 中创建的 ASP.NET Web 应用程序。

在应用程序中有一个表单,用户可以在其中上传文件。 上传文件后,我会处理它们并将它们保存在文件系统中:

var photo = Request.Files["file"];
photo.SaveAs("D:\\home");

一切都在本地完美运行,但是当我在 Azure 应用服务上部署应用程序时它不起作用。

我读到,在 Azure 上,路径

D:\home

应该是可写的。

但是当我尝试代码时,我收到此错误:

Access to the path 'd:\home\test_image.JPG' is denied.

使用%TEMP% ,它在 Azure 应用服务 (Windows) 上解析为d:\\local 那是本地机器磁盘,而不是网络存储,因此速度要快得多。 它在应用程序重启时被擦除,因此相应地编码。

var tempDirectoryPath = Environment.GetEnvironmentVariable("TEMP");
var filePath = Path.Combine(tempDirectoryPath, Request.Files["file"]);

如果您想要持久性,请改用 Blob 存储。

永远不要在服务器组件上使用绝对路径。 例如尝试这样的事情

var folder = Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData);
var filePath = Path.Combine(folder, Request.Files["file"]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM