我的Azure Function应用程序(Node.js)函数设置具有HTTP触发器,我正在尝试访问HTTP请求文件数据,但无法访问。有一个HTML表单向我的本地计算机上的函数的URL发送POST请求。该表单为:
<form
type="multipart/form-data"
action="http://localhost:7071/api/HttpTrigger1"
method="POST"
>
<input type="file" name="file-one" />
<button>Submit</button>
</form>
尽管我尝试过,但HTTP触发器函数的“req”参数的req.body和req.rawBody属性似乎只包含一个带有文件名的字符串,而不包含任何文件数据。否则,我无法在传递给HTTP触发器函数的req对象中找到任何文件数据。在阅读了此处和其他地方的内容后,我确实没有看到答案。到目前为止,我尝试的所有方法都不起作用。除了在JSON主体中传递base64文件数据之外,还有什么方法可以从HTTP请求中访问multipart/form-data文件数据吗?
我在互联网上找到了解决这种情况的指南,但他们的代码指示req.rawBody属性将保存未解析的数据,这似乎是不正确的。我如何访问在函数应用程序函数中与HTTP请求一起发送的文件数据?
2条答案
按热度按时间8yparm6h1#
您需要确定传入的请求是像-
req.headers["content-type"]
这样的多部分请求,还是您有其他方法可以做到这一点。一旦识别出请求是多部分/表单数据,就可以使用
parse-multipart-data
或Form-data-packages等库解析原始的多部分负载。myzjeezk2#
表单必须将“enctype”设置为“multipart/form-data”,而不是“type”。请参见以下内容: