使用 fetch api 发送函数参数

Send function parameters with fetch api

我想使用 fetch api 将生成的带有文件名的 blob pdf 保存到服务器。我设法保存了 pdf,但我如何发送变量文件名。

JS代码:

function uploadBlob (blob, fileName) { 
   fetch(`http://localhost/upload.php`, {
     method:"POST",
     body:blob
   }).then(response => console.log(response.text()))
}

upload.php :

<?php    
    $data = file_get_contents('php://input');
    file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/pdf/generatedpdfwithfilenanme.pdf", $data );
?>

提前致谢

我不确定 php 但 javascript 方面应该是正确的,因为我有它的经验

function uploadBlob (blob, fileName) { 
   fetch(`http://localhost/upload.php?fileName=${encodeURIComponent(fileName)}`, {
     method:"POST",
     body:blob
   }).then(response => console.log(response.text()))
}

并在 php

<?php    
    $fileName = $_GET["fileName"];
    $data = file_get_contents('php://input');
    file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/pdf/" . $fileName /*. ".pdf" */, $data );
?>

编辑

我在代码中有一个错误,访问了错误的 url 密钥,现在已修复

Blob 周围使用 File 构造函数为其添加名称。 File 构造函数基本上是具有一些额外属性的扩展 Blob,例如 name 属性.

function uploadBlob (blob, fileName) {
  const file = new File(blob, fileName);
  fetch(`http://localhost/upload.php`, {
    method: "POST",
    body: file
  }).then(response => console.log(response.text()))
}