3 回答
TA贡献1864条经验 获得超6个赞
好的,我找到你了。
这就是你想要的:
[HttpGet("CreateFile")]
public IActionResult CreateFile(string word)
{
word = "test";
byte[] b = Encoding.ASCII.GetBytes(word);
string base64 = System.Convert.ToBase64String(b);
b = Encoding.ASCII.GetBytes(base64);
var txtStream = new MemoryStream(b);
return File(txtStream, "text/plain", "license.dat");
}
TA贡献1772条经验 获得超6个赞
检查以下答案。您应该有一个正确的解决方案:Return CSV from .NET Core controller
TL;DR:使用 FileResult 而不是 IActionResult 或设置 Content-Disposition 标头。
另一篇非常好的文章:如何从 Web API 返回文件
关于说明:System.Byte[]
我想,由于您已将内容类型设置为“文本/纯文本”,因此某处存在 .ToString() 转换。看看这个问题的第一个conneto。返回“System.Byte[]”而不是实际数据
Array 不会覆盖此方法,因此对于数组,它返回类型名称——这是默认实现。
TA贡献1856条经验 获得超11个赞
我不确定,结果“dGVzdA==”是什么意思
但这个简单的作品:
[HttpGet("CreateFile")]
public IActionResult CreateFile(string word)
{
word = "test";
byte[] b = Encoding.ASCII.GetBytes(word);
var txtStream = new MemoryStream(b);
return File(txtStream, "text/plain", "license.dat");
}
我得到一个里面有“测试”的文件。
但是你应该更好地使用
public FileResult CreateFile(string word)
而且,当然,您可以使用 UTF8 而不是 ASCII
byte[] b = Encoding.UTF8.GetBytes(word);
- 3 回答
- 0 关注
- 84 浏览
添加回答
举报