C:/fakepath проблема с загрузкой в DROPBOX

#javascript #dropbox-api #dropbox-sdk-js

#javascript #dropbox-api #dropbox-sdk-js

Вопрос:

Согласно DROPBOX, это должно работать для загрузок, но все это только загрузка объявления в текстовый файл, не более c:/fakepath . Я понимаю, почему происходит проблема с безопасностью fakepath, но я не понимаю, почему я даже не могу заставить его работать, когда я перехожу прямо к obj.value

 <input id="upfile_1" type="file" value="upload" name="image_1" style="display: nones" onchange="sub_1(this)"/>
  

и

 function sub_1(obj){
    var file = obj.value;   

    var xhr = new XMLHttpRequest();

    xhr.upload.onprogress = function(evt) {
        var percentComplete = parseInt(100.0 * evt.loaded / evt.total);
        // Upload in progress. Do something here with the percent complete.
    };

    xhr.onload = function() {
        if (xhr.status === 200) {
            var fileInfo = JSON.parse(xhr.response);
            // Upload succeeded. Do something here with the file info.
        }
        else {
            var errorMessage = xhr.response || 'Unable to upload file';
            // Upload failed. Do something here with the error.
        }
    };

    xhr.open('POST', 'https://content.dropboxapi.com/2/files/upload');
    xhr.setRequestHeader('Authorization', 'Bearer '   'token');
    xhr.setRequestHeader('Content-Type', 'application/octet-stream');
    xhr.setRequestHeader('Dropbox-API-Arg', JSON.stringify({
        path: '/'    file.name,
        mode: 'add',
        autorename: true,
        mute: false
    }));
    xhr.send(file);
}
  

Комментарии:

1. значение входного файла — это не что иное, как строка с именем файла. Это не файл

2. спасибо 🙂 изменил его на document.getElementById(«upfile_1»).files[0]; и теперь работает!