Javascript: Аргумент 1 конструктора файла не может быть преобразован в последовательность - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь изменить имя файла объекта File с помощью javascript:

<html>
<head><title>test</title></head>
<body>
    <input type="file" id="file" onchange="__func(this)">
</body>

<script>
    function __func(target)
    {
        let file = target.files[0];
            file = new File(
                file.slice(0, file.size),
                file.name,
                {type: 'text/csv'}
            );

        console.log(file);
    }
</script>
</html>


Даже если slice возвращает a Blob объект, и File конструктор принимает объект Blob в качестве первого параметра, я получаю следующую ошибку:

Аргумент 1 конструктора файла не может быть преобразован в последовательность.

Как я могу решить это?

1 Ответ

0 голосов
/ 26 марта 2020

Файл сам по себе является BLOB-объектом, поэтому мы можем передать [file] аналогично [BLOB-объекту], а тип можно получить с помощью file.type

Попробуйте это

<html>
<head><title>test</title></head>
<body>
    <input type="file" id="file" onchange="__func(this)">
</body>

<script>
    function __func(target)
    {
        let file = target.files[0];
       file = new File([file], 'youRenamedIt.csv',{type:file.type});
        console.log(file);
    }
</script>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...