我在用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上创建子文件夹。 图像\上传文件 这不管用。
无法重现此问题,但由于Mac上没有\目录分隔符,我猜它无法正确解释它。您可以使用 Path.DirectorySeparatorChar 为了避免这种情况。
Path.DirectorySeparatorChar
var directiveToUpload = Path.Combine(_hostingEnvironment.WebRootPath, "images\\UploadFile");
会变成
var directiveToUpload = Path.Combine(_hostingEnvironment.WebRootPath, $"images{Path.DirectorySeparatorChar}UploadFile");