You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript File构造函数fileParts参数解析及Flask应用文件读取报错解决

问题解决思路及代码修正

错误原因分析

你当前的代码完全用错了API:

  • File构造函数是用来在浏览器端创建文件对象的,不是读取服务器/本地文件路径的。它要求至少两个参数:第一个fileParts是组成文件内容的片段数组(比如字符串、Blob、BufferSource等,用来拼接成文件内容),第二个是文件名,所以只传路径必然报错。
  • FileReader只能读取浏览器内存中的文件对象(比如用户上传的文件),无法直接访问服务器或本地文件系统的文件路径——浏览器的安全机制不允许这么做。

正确实现方案

要读取服务器上的令牌文件,得通过Flask后端提供接口,前端用网络请求获取内容。

1. Flask后端添加接口

在你的Flask应用中新增一个接口,用来返回令牌文件的内容:

from flask import Flask, send_file

app = Flask(__name__)

# 注意:确保文件路径相对于Flask应用的运行目录是正确的
@app.route('/get-access-token')
def get_access_token():
    return send_file('../../data/Authorisation.txt', mimetype='text/plain')

2. 前端JavaScript修正代码

用fetch请求后端接口获取内容,因为是异步操作,要使用async/await处理:

async function getAccessToken() {
    try {
        // 请求后端接口
        const response = await fetch('/get-access-token');
        // 读取返回的文本内容
        const tokenText = await response.text();
        // 截取第14位之后的内容
        return tokenText.substring(14);
    } catch (err) {
        console.error('获取访问令牌失败:', err);
        return null;
    }
}

关于fileParts参数的补充说明

如果确实需要在浏览器端创建文件对象(比如生成一个下载文件),fileParts才会用到,举个例子:

// 创建一个包含指定文本的文件对象
const file = new File(['这里是文件内容'], 'example.txt', {type: 'text/plain'});

这里的['这里是文件内容']就是fileParts,它是一个数组,数组里的元素会被拼接成文件的内容。

内容的提问来源于stack exchange,提问作者ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:32:37