如何使用Go从磁盘读取文件并将其传递给WebAssembly?

时间:2019-01-20 22:29:43

标签: javascript go webassembly

具体来说,如何在Go中将此功能与<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous"> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script> <nav class="navbar navbar-expand-md navbar-dark bg-dark"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarResponsive"> <ul class="navbar-nav ml-auto"> <li class="nav-item active border-md-right"> <a class="nav-link" href="#">O nas</a> </li> <li class="nav-item active border-md-right"> <a class="nav-link" href="#">Cennik</a> </li> <li class="nav-item active border-md-right"> <a class="nav-link" href="#">Usługi</a> </li> <li class="nav-item active border-md-right"> <a class="nav-link" href="#">Rejestracja</a> </li> <li class="nav-item active"> <a class="nav-link" href="#">Porady</a> </li> </ul> </div> </nav>连接? 我知道有“ syscall / js”软件包,但是我没有找到任何有关文件读取的示例。

<input type="file">

1 个答案:

答案 0 :(得分:1)

您实际上无法在浏览器中访问文件系统。 wasm_exec.js用于在浏览器中执行Go webassembly,它模拟了某些文件系统功能,但我认为这对您不是很有用:https://github.com/golang/go/blob/9d23975d/misc/wasm/wasm_exec.js#L41-L73

默认情况下,文件读取方法甚至会返回错误。

您提到了<input type="file">。您可以从上传的文件Getting byte array through input type = file中获取字节。然后,您可以将这些字节传递给Golang wasm运行时。

在Go代码中定义一个全局syscall / js回调,然后从浏览器中调用以将字节向下传递到Go运行时。

我会寻找有关如何在Go运行时中定义回调的博客。另外还要注意在1.11和1.12之间的更改,该api具有重大更改。