有没有办法在 matlab uihtml 组件中获取文件?

问题描述

我在 uihtml 中使用了一个 uifigure 组件,该组件在其 HTMLSource 属性中加载了一个 HTML 文件。 HTML 文件只是尝试获取位于同一文件夹中的文本文件内容,并将它们输出div 组件中。 HTML 中的正文如下所示:

<body>
    <div id="viewer"></div>
    
    <script>
        fetch("./example.txt")
            .then(response => response.text) 
            .then(textString => {
                document.getElementById('viewer').innerHTML = textString;
            });
    </script>
</body>

问题是我总是收到“找不到页面”(获取响应的状态是 404)。 uihtml 的文档说:常见的网络文件类型,如 JavaScript 和 CSS,可以从您为 HTMLSource 属性指定的 HTML 文件中引用,但其他网络文件类型可能不受支持,所以我不确定是否可以获取文本/pdf/任何其他文件

据我了解,当调用 uihtml 时,MATLAB 会在 uifigure 显示的网页上注入一个 iframe。此 iframe 在本地 Web 服务器上运行,每当您将 script 标记附加到源时,也会从 Web 服务器访问 script。例如,

<body>
    <div id="viewer"></div>
    <script id="script-id" src = "./example.js"></script>
    <script>
         document.getElementById("viewer").innerHTML = document.getElementById("script-id").src;
    </script>
</body>

显示 js 文件的来源,它对应于如下内容: https://localhost:31515/static/xxxxxxxx/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/example.js

我们可以通过附加未记录的文件获得的相同位置

  1. connector.getBaseUrl
  2. matlab.ui.internal.URLUtils.parseURL('/example.js',0)

我已尝试使用该 Web 服务器位置的完整路径获取文本文件
(https://localhost:31515/static/.../example.txt) 但 404 错误仍然存​​在。

在这个级别的 HTML/JS 中,我开始挣扎。看起来应该有某种方法获取文件的数据,因为可以加载脚本,但我找不到方法。有人知道如何成功获取文件吗?我们是否需要在 fetch 请求中使用特殊凭证或类似的东西?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)