@KirylLapouski

Как загрузить локальный файл с клиента на яндекс диск?

Почему-то такой код не работает. Понятно, что проблема в том, что неправильно прикрепляю файл к put запросу. Но как правильно?
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <form name="upload" action="POST">
        <input type="file" name="fileInput" id="">
        <input type="submit">
    </form>

    <div id="log">Прогресс загрузки</div>

    <script>
            function log(html) {
      document.getElementById('log').innerHTML = html;
    }

        document.forms.upload.onsubmit = function (e) {
            e.preventDefault()
            var input = this.elements.fileInput
            var file = input.files[0]
            console.log(file)
            var xhr = new XMLHttpRequest();

            xhr.upload.onprogress = function (event) {
                log(event.loaded + ' / ' + event.total);
            }

            xhr.onload = xhr.onerror = function () {
                if (this.status == 200) {
                    log("success");
                } else {
                    log("error " + this.status);
                }
            };

            xhr.open("PUT", "https://uploader6g.disk.yandex.net:443/upload-target/20180526T222306.946.utd.2ug0h90jo72u3328vvjf4ynzr-k6g.6911714", true);
            xhr.send(file);
        }
        
    </script>
</body>
</html>
  • Вопрос задан
  • 540 просмотров
Пригласить эксперта
Ответы на вопрос 2
402d
@402d
начинал с бейсика на УКНЦ в 1988
https://tech.yandex.ru/disk/api/reference/upload-d...
надеюсь урл вы получаете как описано выше. Действителен однократно в течении 30 минут

xhr.open("PUT", url, true);
xhr.setRequestHeader('Content-type','тут вы должны прописать нужный');
xhr.send(Контент_файла);

т.е. нужно как-то считать содержимое
Ответ написан
@KirylLapouski Автор вопроса
Олег Муравейко Да, url я так и получаю. Вопрос в том и был: как считать содержимое, а потом составить запрос для отправки этого содержимого на сервер?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы