我正在尝试构建一个应用程序,用户可以在其中上载csv文件并将其转换为XML。目前,我的控制器可以在临时文件夹中创建.txt文件。但是,当我打开txt文件时,它全部损坏,如下所示:
我有两个问题 1.如何使文件正确显示,即以逗号分隔的项目? 2.如何更改代码以使文件上传到解决方案资源管理器中
这是相关的控制器代码:
[HttpPost("UploadFiles")]
public async Task<IActionResult> FileUpload(List<IFormFile> files)
{
long size = files.Sum(f => f.Length);
var filePaths = new List<string>();
foreach (var formFile in files)
{
if(formFile.Length > 0)
{
var filePath = Path.GetTempPath()+ Guid.NewGuid().ToString()+".txt";
filePaths.Add(filePath);
using (var stream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite))
{
await formFile.CopyToAsync(stream);
}
}
}
return Ok(new { count = files.Count, size, filePaths });
}
任何建议将不胜感激 预先感谢
答案 0 :(得分:1)
文件损坏时,我认为转换无效。立即尝试上传,无需任何转换。
对于第二个问题,您可以执行以下操作
var filePath = Path.Combine(AppContext.BaseDirectory, $"{Guid.NewGuid().ToString()}.csv"); // or whatever extension you are actually having without modifying the original extension
这会将文件存储在“ bin”目录路径中或源代码所在的目录中。