为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 .Net Core 中创建文件并在该文件中插入字节?

如何在 .Net Core 中创建文件并在该文件中插入字节?

C#
繁华开满天机 2022-12-31 10:28:51
我的问题是当我创建这个控制器时:[HttpPost("[Action]")]public IActionResult CreateFile(string word){    word = "test";    byte[] b = Encoding.ASCII.GetBytes(word);    var txtBuilder = new StringBuilder();    txtBuilder.Append(b);    var txtContent = txtBuilder.ToString();    var txtStream = new MemoryStream(Encoding.UTF8.GetBytes(txtContent));    return File(txtStream,"text/plain","license.dat");}当我大摇大摆地尝试这个请求时,它允许我下载一个文件。当我下载文件时,内容是:系统.字节[]但是当我大摇大摆地测试这个时:[HttpPost("[Action]")]public IActionResult CreateFile(string word){    word = "test";    byte[] b = Encoding.ASCII.GetBytes(word);    return BadRequest(b);}b 的结果是:dGVzdA==我不想在创建的文件中看到test或System.Byte[]在创建的文件中看到 b 在创建的文件上的结果。
查看完整描述

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");

}


查看完整回答
反对 回复 2022-12-31
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

检查以下答案。您应该有一个正确的解决方案:Return CSV from .NET Core controller

TL;DR:使用 FileResult 而不是 IActionResult 或设置 Content-Disposition 标头。

另一篇非常好的文章:如何从 Web API 返回文件

关于说明:System.Byte[]

我想,由于您已将内容类型设置为“文本/纯文本”,因此某处存在 .ToString() 转换。看看这个问题的第一个conneto。返回“System.Byte[]”而不是实际数据

Array 不会覆盖此方法,因此对于数组,它返回类型名称——这是默认实现。


查看完整回答
反对 回复 2022-12-31
?
呼唤远方

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);


查看完整回答
反对 回复 2022-12-31
  • 3 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信