Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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
Javascript 将二进制字符串写入图像文件_Javascript_Node.js - Fatal编程技术网

Javascript 将二进制字符串写入图像文件

Javascript 将二进制字符串写入图像文件,javascript,node.js,Javascript,Node.js,在php中,我们可以使用以下命令将二进制字符串写入图像文件 $binary = hex2bin($hex); file_put_contents("myphoto.png", $binary); 它使用文件\u put\u内容将其写入磁盘: 在node.js中,我们如何像文件内容一样实现这一点 编辑: 我按照评论中的建议尝试了这个,但它给了我一个错误 var binarydata = fs.readFileSync('mybin.txt',{flag:'w'}); fs.w

在php中,我们可以使用以下命令将二进制字符串写入图像文件

$binary = hex2bin($hex);
file_put_contents("myphoto.png", $binary);
它使用文件\u put\u内容将其写入磁盘:

在node.js中,我们如何像文件内容一样实现这一点

编辑: 我按照评论中的建议尝试了这个,但它给了我一个错误

 var binarydata = fs.readFileSync('mybin.txt',{flag:'w'});

        fs.writeFileSync( 'myphoto.png', binarydata );


Error: EPERM, operation not permitted
    at Error (native)
    at Object.fs.readSync (fs.js:552:19)
    at Object.fs.readFileSync (fs.js:389:28)

提前感谢您。

这应该适合您:

var fs = require( 'fs' );
var wstream = fs.createWriteStream( 'myphoto.jpg' );
wstream.write( $binary );
wstream.end();
以下是node.js fs模块的文档:

如果你想在它用完后做点什么

fs.writeFileSync( 'myphoto.png', $binary );
或者异步执行:

var fs = require('fs');
var wstream = fs.createWriteStream('myphoto.jpg');
wstream.on( 'finish', function() {
    // do something
});
wstream.write( $binary );
wstream.end();
读取文件并写入另一个文件:

var fs = require('fs');
fs.readFile( 'temp.txt', function( err, data ) {
    if (err) throw err;

    var wstream = fs.createWriteStream( 'myphoto.jpg' );
    wstream.on( 'finish', function() {
        // do something
    });
    wstream.write( data );
    wstream.end();
});
编辑:我的代码一直在工作,它必须是“myphoto.jpg”而不是“myphoto.png”;) 因此,解决方案不是这样做,您只需重命名文件:

var fs = require('fs');
fs.renameSync( 'temp.txt', 'myphoto.jpg' );
或者,如果您需要temp.txt,请按如下方式复制:

var fs = require('fs');
fs.createReadStream( 'temp.txt' ).pipe( fs.createWriteStream( 'myphoto.jpg' ) );

这应该适合您:

var fs = require( 'fs' );
var wstream = fs.createWriteStream( 'myphoto.jpg' );
wstream.write( $binary );
wstream.end();
以下是node.js fs模块的文档:

如果你想在它用完后做点什么

fs.writeFileSync( 'myphoto.png', $binary );
或者异步执行:

var fs = require('fs');
var wstream = fs.createWriteStream('myphoto.jpg');
wstream.on( 'finish', function() {
    // do something
});
wstream.write( $binary );
wstream.end();
读取文件并写入另一个文件:

var fs = require('fs');
fs.readFile( 'temp.txt', function( err, data ) {
    if (err) throw err;

    var wstream = fs.createWriteStream( 'myphoto.jpg' );
    wstream.on( 'finish', function() {
        // do something
    });
    wstream.write( data );
    wstream.end();
});
编辑:我的代码一直在工作,它必须是“myphoto.jpg”而不是“myphoto.png”;) 因此,解决方案不是这样做,您只需重命名文件:

var fs = require('fs');
fs.renameSync( 'temp.txt', 'myphoto.jpg' );
或者,如果您需要temp.txt,请按如下方式复制:

var fs = require('fs');
fs.createReadStream( 'temp.txt' ).pipe( fs.createWriteStream( 'myphoto.jpg' ) );

阅读将是一个很好的开始。例如
fs.writeFileSync()
并确保您正在编写的是一个
缓冲区type@Catalyst,你能给我看一些片段吗阅读这篇文章是一个很好的开始
并确保您编写的是一个
缓冲区
type@Catalyst,你能给我看一些代码片段吗?我的二进制数据存储在一个文件temp.txt中,我怎样才能先得到它?请阅读文档。。。fs.readFileSync('temp.txt');我还将编辑我的帖子,在帖子中添加一个异步代码段,然后您应该知道所有需要的错误:EPERM,操作不允许您使用Linux吗?然后在windows中用sudoim启动节点…我尝试了你的代码。但是图像不能是openmy二进制数据存储在文件temp.txt中,如何首先获取它?请阅读文档。。。fs.readFileSync('temp.txt');我还将编辑我的帖子,在帖子中添加一个异步代码段,然后您应该知道所有需要的错误:EPERM,操作不允许您使用Linux吗?然后在windows中用sudoim启动节点…我尝试了你的代码。但图像无法打开