簡體   English   中英

通過節點js上傳base64(文件)到php服務器

[英]upload base64 (file) to php server via node js

我目前遇到的情況是 FormData 不適合我。 我正在使用一個有點過時的特定“引擎”Adobe CEP,並且 formData 會導致問題。 我的解決方案是通過 base64 編碼直接上傳文件。 從 Node JS 我做:

let buff = new Buffer(filePath);
let base64data = buff.toString('base64');
console.log(base64data);

console.log 給了我字符串:

Li4vLi4vLi4vLi4vLi4vLi4vLi4vVXNlcnMvb21hcmd1em1hbi8vRGVza3RvcC9Zb28vYWkyaHRtbC1vdXRwdXQvaG9tZS1wcm8tQXJ0Ym9hcmRfMS5qcGc=

  axios.post(API_ENDPOINT, base64data)
  .then(res => console.log(res))

從這里我通過 axios 上傳到 php 服務器。 服務器收到它,我這樣做:

<?php
$data = json_decode( file_get_contents('php://input') );
file_put_contents('testmeimg.jpg', base64_decode($data));
echo 'completed';
?>

另一次嘗試

$data = file_get_contents('php://input');
file_put_contents('testmeimg.jpg', base64_decode($data));
var_dump($data);

"string(120) "Li4vLi4vLi4vLi4vLi4vLi4vLi4vVXNlcnMvb21hcmd1em1hbi8vRGVza3RvcC9Zb28vYWkyaHRtbC1vdXRwdXQvaG9tZS1wcm8tQXJ0Ym9hcmRfMS5qcGc="
"

該文件正確保存到我的服務器,但已損壞且無法讀取。 它也以零字節出現。 知道我做錯了什么嗎? 或者我應該如何處理這個 b64?

感謝@rickdenhaan aka 的大力幫助。 我將節點緩沖區代碼更改為:

   let buff = new Buffer(fs.readFileSync(filePath));
    let base64data = buff.toString('base64');

以前我不是只發送文件緩沖區作為緩沖區的路徑。

然后在 php 端這工作:

$data = file_get_contents('php://input');
file_put_contents('testmeimg.jpg', base64_decode($data));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM