将 Csv 上传到解决方案资源管理器
Upload Csv to solution explorer
我正在尝试构建一个应用程序,用户可以在其中上传 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 });
}
如有任何建议,我们将不胜感激
提前致谢
当文件损坏时,我认为转换不起作用。现在尝试上传它而不进行任何转换。
对于第二个问题,您可以进行以下操作
var filePath = Path.Combine(AppContext.BaseDirectory, $"{Guid.NewGuid().ToString()}.csv"); // or whatever extension you are actually having without modifying the original extension
这会将文件存储在 "bin" 目录路径或源代码所在的目录中。
我正在尝试构建一个应用程序,用户可以在其中上传 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 });
}
如有任何建议,我们将不胜感激 提前致谢
当文件损坏时,我认为转换不起作用。现在尝试上传它而不进行任何转换。
对于第二个问题,您可以进行以下操作
var filePath = Path.Combine(AppContext.BaseDirectory, $"{Guid.NewGuid().ToString()}.csv"); // or whatever extension you are actually having without modifying the original extension
这会将文件存储在 "bin" 目录路径或源代码所在的目录中。