You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Cosmos DB生成的制表符分隔文件发送至Logic App?

解决Logic App接收制表符分隔文件附件的问题

你当前代码的核心问题是错误地将FileStreamResult对象传入StringContent,这完全不符合HTTP上传文件的规范。要让Logic App正确识别并处理文件附件,需要使用**多部分表单数据(MultipartFormDataContent)**来封装文件内容,而不是直接传递字符串。

修改后的完整代码

string query = $"Select * from c";
var restrictions = await _cosmosService.QueryItemsAsync<Data>(Database, query);

if (restrictions == null)
    return new NoContentResult();

// 生成制表符分隔文本
string tabDelimitedText = ConvertToTabDelimited(restrictions);
byte[] tabDelimitedBytes = System.Text.Encoding.UTF8.GetBytes(tabDelimitedText);

// 准备多部分表单内容,用于上传文件
using var formContent = new MultipartFormDataContent();
// 添加文件:参数名(需和Logic App触发器配置匹配)、文件名、文件字节内容
formContent.Add(new ByteArrayContent(tabDelimitedBytes), "file", "data.tsv");

// 发送请求到Logic App的触发器URL
await _client.PostAsync(EmailTriggerUrl, formContent);

// 保留原接口返回逻辑(如果需要)
using var stream = new MemoryStream(tabDelimitedBytes);
return new FileStreamResult(stream, "text/tab-separated-values")
{
    FileDownloadName = "data.tsv"
};

// 制表符文本转换方法(根据实际Data实体调整字段)
private string ConvertToTabDelimited(List<Data> dataList)
{
    using var textWriter = new StringWriter();
    // 写入表头
    textWriter.WriteLine("Field1\tField2\tField3");
    foreach (var item in dataList)
    {
        textWriter.WriteLine($"{item.Field1}\t{item.Field2}\t{item.Field3}");
    }
    return textWriter.ToString();
}

关键修改说明

  • 替换StringContent为MultipartFormDataContent:这是HTTP上传文件的标准格式,Logic App的HTTP触发器可直接解析这种格式的文件附件。
  • 表单字段名匹配:formContent.Add中的第二个参数"file",需要和你Logic App HTTP触发器中配置的文件输入参数名完全一致,否则Logic App无法识别文件。
  • 规范文件名和媒体类型:使用.tsv后缀明确标识制表符分隔文件,媒体类型text/tab-separated-values比text/plain更准确,便于后续邮件附件处理。

额外注意事项

  • 确保Logic App的HTTP触发器已启用允许文件上传,或配置为接收multipart/form-data类型的请求。
  • 检查ConvertToTabDelimited方法的参数类型,需和QueryItemsAsync返回的restrictions类型匹配,避免类型转换错误。

内容的提问来源于stack exchange,提问作者Owen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 14:45:09