抱歉我的英语不好。我需要上载输入文件选择的文件(.exe):
<input type="file" id="myfile">
这样读(Javascript):
var myfile='';
var input = document.getElementById('myfile');
input.onchange = function(evt){
var tgt = evt.target || window.event.srcElement, files = tgt.files;
if (FileReader && files && files.length) {
var fr = new FileReader();
fr.onload = function(){
myfile = fr.result;
}
fr.readAsDataURL(files[0]);
}
}
现在我有了变量“MyFile”,比如:
"data:application/msdownload;base64,0J/RgNC40LLQtdGCINC80LjRgCE= .... etc."
在base64部分中,我有我所选择的源文件。当我尝试上传我的文件时,这个文件的编码和大小改变了,并且文件被损坏了。你做错了什么?
var fd = new FormData();
var b = new Blob([atob(decodeURIComponent((myfile).split(',')[1]))],{type: 'application/msdownload'});
fd.append('file', b, "myfile.exe");
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://myserver/");
xhr.send(fd);
xhr.setRequestHeader("Content-Type", "charset=windows-1251");
.............
xhr.setRequestHeader("Content-Type", "charset=utf-8");
0J/RgNC40LLQtdGCINC80LjRgCE=
我知道这个字符串是文件“secretfile.exe”的来源。我想解码和上传这个文件使用JavaScript。标准window.atob解码的字符串不等于原始文件源。如何真正解码这个文件,在FileReader中由Base64编码。
谢谢你。
您不必将文件读取为数据字符串,然后将其转换为blob
。任何file
对象(例如从元素获取的对象)也将是
blob
,因此您可以直接将其传递给fd.append
。
如果您需要在上载之前操作fileReader
对象,则应该使用fileReader
的ReadasArrayBuffer
方法,该方法为您提供了一个可以直接操作的arrayBuffer
,然后在上载之前使用新blob([arrayBuffer])
创建一个blob。
我想从我的本地html文件中读取一个本地文本文件,所以我尝试遵循这个线程中的解决方案JavaScript-Read local text file,但建议的解决方案对我也不起作用: 当我调用函数时,在firebug中不会出现错误,但也不会显示警报。我使用Windows和Firefox51.0.1(64位)。我不想将函数与按钮
我想访问“onload”功能之外的文件内容。我知道这与异步有关。下面是我的js函数: 谢谢大家!
我试着用JS读txt文件。所以我用这个代码。 我的txt文件看起来: 当我输入代码:时,我的程序工作得很好,但我想用ip Adres打开txt文件。 但是我的应用程序不能读取txt文件。
我编写了以下代码: 我的终端支持Unicode,在Linux上使用gcc 8.2.1编译。
问题内容: 我正在尝试为我的程序创建一个简单的菜单来读取用户输入。这是代码: 这是我得到的例外测试: 我从while循环中删除了第二个命令= Scanner.next(),但是让我仅读取一次用户输入。怎么解决呢? 更新:AddWord方法: 问题答案: 您可以使用