dongyan7876
2018-07-13 08:40
浏览 187

在nodejs中进行Base64编码并在php中进行解码是不同的?

I want to post en file from NodeJs to PHP server.

To do this :

0 - I read a file (a Power Point file)

1 - I encode the file-content in base64

2 - I post the file to the PHP

3 - I decode the file content

4 - I save the file

But when I open the file after the step 4, the file is broken. Anyone say why the decode isn't working ?

nodejs code :

fs.readFile(FilePath, 'utf8', function(err, data) {
                if (err) throw err;
                request.post(
                    callback_url,
                    { json: {
                        'document_id': id,
                        'document': Buffer.from(data).toString('base64'),
                        'content_type': mime.getType(resultFilePath + resultFile)
                    } },
                    function (error:any, response:any, body:any) {
                        console.log(body);
                    }
                );
            });

PHP code :

// set the POST content in $document
$document = base64_decode($document);
file_put_contents($fileName, $document);

Edit : The error was the encoding when I read the file ... replace

fs.readFile(FilePath, 'utf8', function(err, data) {

to

fs.readFile(FilePath, function(err, data) {

图片转代码服务由CSDN问答提供 功能建议

我想将Node文件中的en文件发布到PHP服务器。

To 执行此操作:

0 - 我读取文件(Power Point文件)

1 - 我对base64中的文件内容进行编码

2 - 我将文件发布到PHP

3 - 我解码文件内容

4 - 我保存 文件

但是当我在步骤4之后打开文件时,文件被破坏了。 有人说为什么解码不起作用?

nodejs代码:

  fs.readFile(FilePath,'utf8',function( 错误,数据){
 if(err)throw err; 
 request.post(
 callback_url,
 {json:{
'document_id':id,
'document':Buffer.from(data)  .toString('base64'),
'content_type':mime.getType(resultFilePath + resultFile)
}},
 function(错误:any,response:any,body:any){
 console.log(  body); 
} 
); 
}); 
   
 
 

PHP代码:

  /  /设置$ document 
 $ document = base64_decode($ document); 
file_put_contents($ fileName,$ document); 
   
 
 

编辑POST内容 : 错误是我读取文件时的编码... replace

  fs.readFile(FilePath,'utf8',funct 离子(错误,数据){
   
 
 

  fs.readFile(FilePath,function(err,data)  ){
   
 
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doumu6941 2018-07-24 12:55
    已采纳

    The error was the encoding when I read the file ... replace

    fs.readFile(FilePath, 'utf8', function(err, data) {
    

    to

    fs.readFile(FilePath, function(err, data) {
    

    Thanks all

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题