首页 > 解决方案 > Linux 上的 ASP.NET Core

问题描述

我在 Linux 上遇到了 ASP.NET Core 的问题。我有 VPS 服务器,在此我有我的应用程序,这在本地很好。问题在于文件上传。我不知道为什么我有 异常

我的代码适用于本地主机和本地目录。

public static async Task<List<FileDetail>> UploadFileAsync(this IHostingEnvironment _host,
        ApplicationDbContext _context, 
        int Id, 
        IFormFileCollection files)
    {
        for(int i=0; i<files.Count; i++)
        {
            var file = files[i];
            if(file != null && file.Length > 0)
            {
                try
                {
                    FileDetail fileDetail = new FileDetail()
                    {
                        Id = Guid.NewGuid(),
                        FileName = Path.GetFileName(file.FileName),
                        Extension = Path.GetExtension(file.FileName).ToLower(),
                        TicketId = Id,
                    };
                    var uploads = Path.Combine(_host.WebRootPath, "Uploads");
                    const string back = "/";
                    const string slash = @"\";
                    var filePath = Path.Combine(uploads, fileDetail.Id + fileDetail.Extension);
                    filePath = filePath.Replace(slash,back);
                    fileStream = new FileStream(filePath, FileMode.Create); //there is a problem
                    await file.CopyToAsync(fileStream);
                    fileDetails.Add(fileDetail);
                    _context.FileDetail.Add(fileDetail);
                }
                catch (IOException)
                {
                    throw;
                }
                finally
                {
                    fileStream.Close(); //this is my 48 line.
                }
            }
        }
        return fileDetails;
    }

我认为这是文件夹权限的问题,但我没有 Linux 和 nginx 服务的经验。有人可以帮助我,解决这个问题吗?

标签: c#linuxnginx

解决方案


推荐阅读