假设我有一台PHP服务器。我正在为这台服务器创建一个API。我希望收到一个请求,其中
$_POST["FileContent"]
将包含文件内容和
$_POST["FileName"]
将包含文件的名称。我的问题是我没有做过这样的事情,我此刻上传文件的唯一方法是使用类型文件的输入。如果我只是以二进制方式加载文件,那么我想使用最佳实践方法,我还想确保内容实际上是图像内容,而不是PHP上传注入。我怎么能这样做?
答案 0 :(得分:1)
你应该对客户端的文件内容进行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);