微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决有没有办法在 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 举报,一经查实,本站将立刻删除。