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

如何从Logic App及Azure门户Code+Test界面向Azure Function传递两个CSV与字符串?

Azure Function接收multipart/form-data的测试与Logic App调用解决方案

一、Azure门户Code + Test界面测试方法

Azure门户的Code + Test默认测试面板不支持可视化上传文件,需通过Raw模式构造multipart/form-data请求:

  1. 进入目标Function的Code + Test界面,点击「Test/Run」打开测试面板
  2. 切换到Raw标签页,设置HTTP方法为POST
  3. 在Headers区域添加请求头:
    Content-Type: multipart/form-data; boundary=----CustomBoundary123
    
    (----CustomBoundary123可自定义,需与请求体中的边界标识一致)
  4. 在Body区域构造表单内容,替换占位内容后直接粘贴:
    ----CustomBoundary123
    Content-Disposition: form-data; name="file1"; filename="file1.csv"
    Content-Type: text/csv
    
    [粘贴file1.csv的完整文本内容]
    ----CustomBoundary123
    Content-Disposition: form-data; name="file2"; filename="file2.csv"
    Content-Type: text/csv
    
    [粘贴file2.csv的完整文本内容]
    ----CustomBoundary123
    Content-Disposition: form-data; name="stringDate"
    
    2024-05-20
    ----CustomBoundary123--
    
  5. 点击「Run」执行测试,即可正确传递文件和日期参数。

二、Logic App中构造HTTP动作的正确方式

Logic App的HTTP动作支持可视化配置multipart/form-data表单,无需手动拼接内容:

  1. 添加HTTP动作,设置Method为POST,URL填写你的Function触发地址(需包含code参数)
  2. 切换到Body标签页,选择form-data格式
  3. 依次添加三个表单项:
    • 项1:名称填file1,类型选File,值选择@{body('Create_CSV_Table')}(对应第一个CSV表的输出),文件名设为file1.csv,Content-Type设为text/csv
    • 项2:名称填file2,类型选File,值选择对应第二个CSV表的输出,文件名设为file2.csv,Content-Type设为text/csv
    • 项3:名称填stringDate,类型选Text,值填写目标日期字符串(可使用表达式如@{utcNow('yyyy-MM-dd')}或固定值)
  4. 无需手动设置Content-Type,Logic App会自动生成符合规范的multipart/form-data请求头和边界标识。

三、Function代码适配建议

你的现有代码是读取表单字符串字段,但multipart/form-data中的文件应为文件流对象,需调整代码以正确读取:

var form = await req.ReadFormAsync();
// 读取文件流
var file1 = form.Files["file1"];
var file2 = form.Files["file2"];
// 读取日期字符串
var stringDate = form["stringDate"].ToString();

// 示例:读取CSV文件内容
if (file1 != null && file1.Length > 0)
{
    using (var streamReader = new StreamReader(file1.OpenReadStream()))
    {
        var file1Content = await streamReader.ReadToEndAsync();
        // 处理CSV内容
    }
}

此前Postman测试正常可能是因为你将文件转为Base64字符串传递,但Code + Test和Logic App默认以文件流方式传递,因此需适配文件流读取逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 11:33:21