Javascript:文件构造函数的参数 1 无法转换为序列

标签 javascript html blob

我正在尝试通过 javascript 更改 File 对象的文件名:

<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>


即使切片 returns Blob 对象和 File 构造函数 does acceptBlob 对象作为第一个参数,我收到以下错误:

Argument 1 of File constructor can't be converted to a sequence.

如何解决?

最佳答案

File本身就是一个blob,所以我们可以像[blob]一样传递[file],并且可以通过file.type来访问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>

关于Javascript:文件构造函数的参数 1 无法转换为序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60865555/

相关文章:

javascript - 使用javascript自动最小化窗口 - jquery

javascript - 如何使用谷歌地图javascript

html - CSS:元素本身的过渡属性?

html - 如何制作自定义html控件

mysql - 将 blob 转换为 varchar 在 mysql 中返回 null

javascript - 使用 MediaRecorder 录制 5 秒的音频片段,然后上传到服务器

java - 如何从sqlite读取blob数据并显示它

javascript - Angular 2 中的哈希定位策略

javascript - 如何使用 NodeJs 的 JSONAPI-Serializer 模块反序列化数据

html - 列表缩进与标题相同的 x 线