Javascript 如何使用Go从磁盘读取文件并将其传递给WebAssembly?
具体来说,如何在Go中使用此功能连接Javascript 如何使用Go从磁盘读取文件并将其传递给WebAssembly?,javascript,go,webassembly,Javascript,Go,Webassembly,具体来说,如何在Go中使用此功能连接? 我知道有“syscall/js”包,但我没有找到任何读取文件的示例 func parseCSVFile(filePath string) []LabelWithFeatures { fileContent, _ := ioutil.ReadFile(filePath) lines := bytes.Split(fileContent, newline) numRows := len(lines) labelsWithFea
?
我知道有“syscall/js”包,但我没有找到任何读取文件的示例
func parseCSVFile(filePath string) []LabelWithFeatures {
fileContent, _ := ioutil.ReadFile(filePath)
lines := bytes.Split(fileContent, newline)
numRows := len(lines)
labelsWithFeatures := make([]LabelWithFeatures, numRows-2)
for i, line := range lines {
// skip headers
if i == 0 || i == numRows-1 {
continue
}
labelsWithFeatures[i-1] = NewLabelWithFeatures(bytes.Split(line, comma))
}
return labelsWithFeatures
}
您无法在浏览器中真正访问文件系统
wasm_exec.js
用于在浏览器中执行Go webassembly,它模拟了一些文件系统功能,但我认为它对您不是很有用:
默认情况下,file read方法甚至会返回一个错误
您提到了
。您可以从上载的文件中获取字节:。然后可以将这些字节传递给Golang wasm运行时
在Go代码中定义一个全局syscall/js回调,并从浏览器中调用它,将字节向下传递给Go运行时
我将寻找关于如何在Go运行时中定义回调的博客文章。还要注意GO1.11和1.12之间的变化,api有突破性的变化 出于安全原因,您无法在浏览器中与本地文件系统交互。可能您需要使用
syscall/js
@Adrian调用FileReader
JavaScript API()。当然可以,您只需要求用户提供文件即可。除了上传输入,还有API。@donatJ这与与与本地文件系统交互不同。不能从JavaScript打开任意文件路径或检查目录。访问文件的唯一方法是用户将其提供给文件表单字段。