#javascript #php #api #file #dropbox
#javascript #php #API #файл #dropbox
Вопрос:
Мне было интересно, может ли кто-нибудь взглянуть на этот javascript. Он берет файл, нарезает его с помощью цикла for и отправляет нарезанные биты на серверную часть, которая отправляется в API Dropbox. когда они попадают в dropbox, им не хватает нескольких мегабайт, и они не открываются так, как должны. Например, я отправил avi-файл, и видео составляет примерно четверть от предполагаемой длины. Если у кого-то нет идей, пожалуйста, дайте мне знать.
for(let start = 0; start < file.size; start = chunkSize){
const slice = file.slice(start,start chunkSize 1)
const fd = new FormData()
fd.append('data', slice)
//count tells the server which api endpoint to hit (start sessions/append to session)
fd.append('count', start)
if(start != 0){
fd.append('session_id',sessionID)
fd.append('offset', uploadedSoFar)
}
uploadedSoFar = slice.size;
await fetch('/wp-content/plugins/Basic/chunks.php', {
method: 'POST',
body: fd
}) .then(response => response.text() )
.then((result) =>{
if(start == 0){
const json = JSON.parse(result);
sessionID = json['session_id']
console.log(sessionID)
}
console.log(result)
//finishChunk()
});
}
const fd2 = new FormData();
fd2.append('session_id', sessionID)
const filepath = window.filePath;
const filename = file.name;
fd2.append('path', `${filepath}${filename}`)
fd2.append('filesize', uploadedSoFar)
fetch('/wp-content/plugins/Basic/finishchunk.php', {
method: 'POST',
body: fd2
}) .then(response => response.text() )
.then(result=>{
console.log(result)
});
}