Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件从url或文件系统读入javascript中的变量_Javascript_File Io - Fatal编程技术网

将文件从url或文件系统读入javascript中的变量

将文件从url或文件系统读入javascript中的变量,javascript,file-io,Javascript,File Io,我试图从我的计算机上的文件中读入一个文件,并将其存储在一个变量中。 我目前正在尝试: var fr = new FileReader; fr.onload = function() { //variable to hold file var data = fr.result; var c=document.getElementById("cvs"); var ctx=c.getContext("2d"); ctx.drawImage(img,0,0,

我试图从我的计算机上的文件中读入一个文件,并将其存储在一个变量中。 我目前正在尝试:

var fr = new FileReader;

fr.onload = function() {

    //variable to hold file
    var data = fr.result;

    var c=document.getElementById("cvs");
    var ctx=c.getContext("2d");
    ctx.drawImage(img,0,0,200,180);
};

fr.readAsDataURL("encryptedImage");
这是行不通的。我需要这样做,我可以解密我的文件系统上的加密图像。我已经关闭了安全设置,以便可以从浏览器读取我的文件系统


有什么想法吗?

从这里看来,您希望通过向readAsArrayBuffer()传递一个字符串来加载本地文件,但它检查一个blob或file对象。可以通过浏览器文件对话框加载该文件。 步骤是:选择文件,通过fileReader asArrayBuffer或asDataURL或asBinaryString加载文件。。。并操纵或使用代码中的数据

在本例中,它从本地文件创建一个图像,并将其绘制到画布上(如果它的mime类型正确,则为“Image.*”

我不确定您要应用哪种编码/解码。但对于数据的自定义操作,我建议使用ArrayBuffers和TypeArray

FileReader.readAsDataURL()的示例:


“不起作用”是什么意思?您是否收到任何错误消息?在Firefox中,我收到NS\u error\u XPC\u BAD\u CONVERT\u JS:无法转换JavaScript参数arg 0[nsIDOMFileReader.readAsDataURL]。在safari中,我没有收到任何错误消息
<body>
  <canvas id="cvs" width="200" height="200"></canvas>
  <input type="file" id="files" name="files[]" multiple />
</body>
document.getElementById('files').addEventListener('change', handleFileSelect, false);

var fr = new FileReader();

function handleFileSelect(evt) {
    var files = evt.target.files;
    fr.readAsDataURL(files[0]);
};

fr.onload = function(evt) {
    // do sth with it
    var data = evt.target.result; //fr.result 
    img = new Image();
    img.src = data; 
    //  draw after load
    img.onload = function() {
       var c=document.getElementById("cvs");
       var ctx=c.getContext("2d");
       ctx.drawImage(img,0,0,200,180);      
    };
};