Azure関数におけるmultipart/formデータの解析
1836 ワード
内部のAzure静的Webサイトプロジェクトに取り組んでいる間、私はコスモスDBにデータをインポートするためにAzure機能にCSVファイルをアップロードする必要がありました.
あなたのAPIにファイルをアップロードするとき
簡単にするには、プロジェクトに次の依存関係をインストールする必要があります.
あなたのAPIにファイルをアップロードするとき
multipart/form-data
コンテンツタイプが使用されます.各ファイルを取得するためにいくつかの構文解析が必要なので、bodyのフォーマットは少し“特別”に見えます.-----WebKitFormBoundaryXvnFih9Jfw9ZdQNB
Content-Disposition: form-data; name': '"file"; filename="2020-9-2-localization.csv"
Content-Type: text/csv
id,name
test1,test1
test2,test2
------WebKitFormBoundaryXvnFih9Jfw9ZdQNB--
構文解析に関する前の記事のように application/x-www-form-urlencoded
in Azure Function , このコンテンツタイプは、自分自身を解析しなければならないものです.簡単にするには、プロジェクトに次の依存関係をインストールする必要があります.
npm i parse-multipart -S -E
. コードは次のようになります.import { AzureFunction, Context, HttpRequest } from "@azure/functions";
import * as multipart from 'parse-multipart';
const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
const body = req.rawBody;
// Retrieve the boundary id
const boundary = multipart.getBoundary(req.headers["content-type"]);
if (boundary) {
const files: File[] = multipart.Parse(Buffer.from(body), boundary);
if (files && files.length > 0) {
// Do what you want to do with the file
}
context.res.status(200);
} else {
context.res.status(500).send("No file(s) found.");
}
};
私はあなたがアップロードされたファイルの処理を開始するのを助けることを願っています.Reference
この問題について(Azure関数におけるmultipart/formデータの解析), 我々は、より多くの情報をここで見つけました https://dev.to/estruyf/parse-multipart-form-data-in-azure-function-1370テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol