如何将文件上传到 API

How to upload a file to an API

假设我有一个 PHP 服务器。我正在为此服务器创建一个 API。我希望收到一个请求,其中

$_POST["FileContent"]

将包含文件内容并且

$_POST["FileName"]

将包含文件的名称。我的问题是我没有做任何类似的事情,此时我可以上传文件的唯一方法是使用文件类型的输入。如果我只是以二进制方式加载文件,那么我想使用最佳实践方法并且我还想确保内容确实是图像内容而不是 PHP 上传注入,因为实例。我该怎么做?

您应该在客户端对文件内容进行 base64 编码,并在 API 端进行 base64 解码。

// client (pseudo-code)
data = {FileName: "someFileName", FileContents: base64Encode(someFile)}

// api
$fileContents = base64_decode($_POST['FileContents']);
$fileName     = $_POST['FileName'];

file_put_contents('path/to/upload/' . $fileName, $fileContents);