代码之家  ›  专栏  ›  技术社区  ›  San Jaisy

上载文件以创建目录ASP.Net核心mac os不创建子文件夹

  •  0
  • San Jaisy  · 技术社区  · 7 年前

    我在用asp.net核心创建一个项目,将文件上载到服务器中的特定位置。

    代码如下:

    TempFileName = Regex.Replace(vehicle.FileUpload.FileName, "[^a-zA-Z0-9_]+", "_", RegexOptions.Compiled);
    var directiveToUpload = Path.Combine(_hostingEnvironment.WebRootPath, "images\\UploadFile");
    
    if (!System.IO.Directory.Exists(directiveToUpload))
    {
        System.IO.Directory.CreateDirectory(directiveToUpload);
    }
    
    await SaveFileToServer(TempFileName);
    

    保存文件:

    async Task SaveFileToServer(string FileName)
    {
    
        if (vehicle.FileUpload.Length > 0)
        {
            using (var stream = new FileStream(Path.Combine(directiveToUpload, FileName), FileMode.Create))
            {
                await vehicle.FileUpload.CopyToAsync(stream);
            }
        }
    }
    

    因为文件被上传了,但它没有在mac上创建子文件夹。 图像\上传文件 这不管用。

    image upload

    1 回复  |  直到 7 年前
        1
  •  2
  •   LoïcR    7 年前

    无法重现此问题,但由于Mac上没有\目录分隔符,我猜它无法正确解释它。您可以使用 Path.DirectorySeparatorChar 为了避免这种情况。

    var directiveToUpload = Path.Combine(_hostingEnvironment.WebRootPath, "images\\UploadFile");
    

    会变成

    var directiveToUpload = Path.Combine(_hostingEnvironment.WebRootPath, $"images{Path.DirectorySeparatorChar}UploadFile");
    
    推荐文章