我有用PHP编写的REST API,并基于Slim Framework。
use SlimHttpUploadedFile;
$uploadedFiles = $request->getUploadedFiles();
$uploadedFile = $uploadedFiles['myFileName'];
我应该如何保护文件上传脚本?我不仅要设置文件大小限制,还要保护我的网络服务器不上传除图像(jpg,png)以外的任何内容。在 Slim 中上传文件脚本的最佳实践是什么?
您可以在服务器的 php.ini 中限制上传文件大小限制,只需将 upload_max_filesize
指令的值更改为所需的最大限制即可。
至于只允许某些文件类型,您可以使用如下所示的方法来实现这一点:
<?php
$extension = pathinfo($uploadedFile, PATHINFO_EXTENSION);
$allowed = ["image/jpeg", "image/png"];
if(!in_array($extension, $allowed)) {
$error = "File type is not allowed!";
}