在JavaScript中从ArrayBuffer获取二进制字符串的方法是什么?
我不想编码字节,只是将二进制表示形式为String.
提前致谢!
在我有限制的JavaScript经验之前,我会告诉你.
$('#xhr-filebox').bind({
"dragover": HandleDragEvent,
"dragleave": HandleDragEvent,
"drop": HandleDropEvent
});
function HandleDropEvent(e){
var files = e.target.files || e.dataTransfer.files;
UploadFile(files[0]);
}
Run Code Online (Sandbox Code Playgroud)
(省略了一些代码,但如果你要求,我会添加更多代码)
......和HTML:
<div class="filebox" id="xhr-filebox">
<p id="xhr-action">...or click me to pick one.</p>
</div>
Run Code Online (Sandbox Code Playgroud)
但是,当我将文件拖入其中时,Chrome JS控制台会说:
未捕获的TypeError:无法读取未定义的属性"文件"
但是,从文件输入读取时,它可以获取FileList对象.
奇怪的是,当我登录事件参数(执行console.log(E)),它会记录它作为f.event,而在我的一个类似的脚本,它会记录它的MouseEvent(截图:HTTP://i.stack.imgur .com/3krcT.png)
与jQuery中的bind()函数不同,它使用getElementById()返回的DOM对象的addEventListener()函数,IE这是纯JavaScript.我尝试过这种方法但没有新的事情发生.
我需要一些帮助从下面的函数返回"bytes"变量,以用作另一个函数的输入.
function openfile() {
var input = document.getElementById("files").files;
var fileData = new Blob([input[0]]);
var reader = new FileReader();
reader.readAsArrayBuffer(fileData);
reader.onload = function(){
var arrayBuffer = reader.result
var bytes = new Uint8Array(arrayBuffer);
console.log(bytes);
}
Run Code Online (Sandbox Code Playgroud)
我想得到上面函数的返回,并在另一个函数中使用字节数组作为输入参数.
我尝试将通过输入文件获得的文件转换为byte [].我尝试使用FileReader,但我必须错过一些东西:
var bytes = [];
var reader = new FileReader();
reader.onload = function () {
bytes = reader.result;
};
reader.readAsArrayBuffer(myFile);
Run Code Online (Sandbox Code Playgroud)
但最后,我的bytes var不满足字节数组.
我看到这篇文章:通过input type = file获取字节数组,但它不以byte []结尾,并且不推荐使用readAsBinaryString()
我错过了什么?
<input type="file">具体来说, Go中如何连接这个函数呢?我知道有“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
}
Run Code Online (Sandbox Code Playgroud) javascript ×5
filereader ×2
arraybuffer ×1
file-upload ×1
go ×1
html5 ×1
jquery ×1
webassembly ×1