将CSV上载到解决方案资源管理器

时间:2019-08-16 09:49:24

标签: c# asp.net-mvc asp.net-core filestream

我正在尝试构建一个应用程序,用户可以在其中上载csv文件并将其转换为XML。目前,我的控制器可以在临时文件夹中创建.txt文件。但是,当我打开txt文件时,它全部损坏,如下所示: Upload

我有两个问题 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 });
    }

任何建议将不胜感激 预先感谢

1 个答案:

答案 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”目录路径中或源代码所在的目录中。