タイトルや特定の番号などのメタデータを含むzipファイルをアップロードする必要があります。Javascriptはxhttpのzipファイルでメタデータを送信するPOSTリクエスト
どちらか私が直接zipファイルを送信しています:
function generalPostRequest(content, url, cb) {
var xhttp = new XMLHttpRequest();
xhttp.open("POST", url, true);
xhttp.withCredentials = true;
xhttp.setRequestHeader("Authorization", "Basic " + btoa("NAME:PASS"));
//DIFF
xhttp.setRequestHeader("Content-Type", "application/zip");
//DIFF
xhttp.onreadystatechange = function() {
if (xhttp.readyState === 4 && xhttp.status === 200) {
if (cb) {
cb(JSON.parse(xhttp.response));
}
}
};
xhttp.send(content);//DIFF
}
しかし、その後、私はメタデータを追加する方法がわかりません。 他の方法は次のようになります。
function generalPostRequest(content, url, cb) {
var xhttp = new XMLHttpRequest();
xhttp.open("POST", url, true);
xhttp.withCredentials = true;
xhttp.setRequestHeader("Authorization", "Basic " + btoa("NAME:PASS"));
//DIFF
xhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
var params = JSON.stringify(content);
//DIFF
xhttp.onreadystatechange = function() {
if (xhttp.readyState === 4 && xhttp.status === 200) {
if (cb) {
cb(JSON.parse(xhttp.response));
}
}
};
xhttp.send(params);//DIFF
}
しかし、私は配列にzipファイルを追加する場合、JSON.stringify機能は、zipファイルを削除します。バイト配列に変換する必要があるかもしれません。
ソリューション1にメタデータを追加する方法、またはソリューション2のバイト配列にZIPを変換する方法を教えてください。
どのような種類のメタデータですか?このメタデータを送信する必要があることを示す文書はどこにありますか?最高の推測では、あなたは 'Authorization'や' Content-Type'のようなカスタムヘッダを追加しますが、ドキュメントを最初に見る必要があります。 – Tigger
私はzipファイル、数字と文字列をすべて1回のPOSTリクエストで送信したいと思います。ドキュメントはありません。 –
あなたは 'FormData'を使う必要があります。参照:[demo/sample/docs](https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications)。 – Tigger