У меня есть веб-страница. Я пытаюсь разрешить отправку видео в мой API через XMLhttprequest, как показано ниже:
<form onsubmit="submitBtn()">
<input type="file" accept="video/*" name="fileupload" value="fileupload" id="fileupload">
<label for="fileupload"> Select a file to upload
</label>
<input type="submit" value="submit">
</form>
<script language="javascript" type="text/javascript">
function submitBtn() {
var search = document.getElementById('fileupload').value;
if (search.length>0){
var text = search;
userAction(text);
}
}
</script>
<script language="javascript" type="text/javascript">
function userAction(res) {
var formData = new FormData();
formData.append("video", res);
var request = new XMLHttpRequest();
var api = 'myApi'
request.open('POST', api, true);
request.onload = function () {
// Begin accessing JSON data here
var data = this.response;
if (request.status >= 200 && request.status < 400) {
console.log('celebrate');
} else {
console.log('error');
}
}
request.send(formData);
}
</script>
Эта часть работает нормально, однако я не верю, что видео сам отправляется в мой API. Если я context.log(result.body)
получаю что-то похожее на:
------WebKitFormBoundary1234
Content-Disposition: form-data; name="video"
C:\fakepath\videoname.mp4
------WebKitFormBoundaryq1234--
Я буду sh, чтобы затем отправить это видео другому API в качестве содержимого тела для нескольких частей / форм.
Я попытался это используя:
function videoAPI (context, auth, vid, callback){
var body = vid;
var requestUrl = urlApi;
const requestOptions = {
hostname: requestUrl.hostname,
path: requestUrl.path,
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data',
}
};
var request = https.request(requestOptions, function(res) {
var data = "";
res.on('data', function (chunk) {
context.log('Response: ' + chunk);
data += chunk;
});
res.on('end', function () {
var jsonData = JSON.parse(data);
callback(jsonData);
});
})
request.write(body);
request.end();
}
Опять же, эта функция, однако, я получаю ответ:
Input is invalid. Input must specify either a video url, an asset id or provide a multipart content body
Похоже, что я либо отправляю видео неправильно, либо я не отправляю его правильно через XMLhttprequest.
Может кто-нибудь подсказать, где я ошибся и как это исправить, пожалуйста?
Я использую nodejs и Azure.