首页 > 解决方案 > 无法在 Zapier 自定义 CLI APP 操作上发布具有原始文件名的文件

问题描述

我正在创建一个 ZAPIER CLI 应用程序,在该应用程序中,我正在创建一个通过其余 API 上传文件的操作。我正在关注这个示例应用程序示例应用程序,我只有一个输入字段“文件”,我的应用程序中没有“文件名”的输入字段。这是我的代码:-

const uploadFile = (z, bundle) => {
  const formData = new FormData();  
  formData.append('file', request(bundle.inputData.file)); 

return z.request({
  url: 'MY API ENDPOINT',
  method: 'POST',
  body: formData,
})
.then((response) => {
  return response.json;
});

};

但这对我来说不起作用,向休息 API 发送错误的文件名。这发送一个长字符串代替文件名。这是我在服务器(API)端得到的

这是我在使用上述代码时收到的示例:-

  `[name] => .eJwtj1GOwiAURffCt5QygC0sYrZAXuFpSVuKgGPUdO-DiZ_35Obm3DcJsVSIDm3wxCguuBJan8gl4OpthA2JIR7_7CWsSE7EzegWu-CTGCm0Oqu-sT1WjNXWZ_q0f1tteUC-FmLe5J7XxuZaUzGMvSAFzBQ3CCtNkEsLUCu4eWsLpSuigw1ee4RH6dy-sZ-ea9pzKnrGhRDjqOTIBnS91F5RrQZHJUwT1RMqyrn0TgzgcOKMW96leG0yX6_vg4y3O5ba3I7j-AdX6FEq:1gqcEs:zXfK_evEDwf09Yp4IhuAaqxt464
            [type] => application/octet-stream
            [tmp_name] => /tmp/php0qvnl0
            [error] => 0
            [size] => 394106`

我的代码有什么问题吗?

当我通过下面的代码将文件名传递到文件字段时,它正在工作,但你可以看到我传递了一个硬编码 文件名“unicycle.jpg”,我希望它是动态的。

formData.append("file", request(bundle.inputData.file), {filename: 'unicycle.jpg'});

有没有办法做到这一点?

标签: node.jsfile-uploadzapiernode-requestzapier-cli

解决方案


大卫在这里,来自 Zapier 平台团队。

Zapier 一旦进入我们的系统就看不到文件名,所以如果你想命名文件,你需要用户提供它。我建议为调用添加一个输入字段filename并将其映射到formdata调用中。


推荐阅读