保护PHP和Slim的文件上载

保护PHP和Slim的文件上载,php,file-upload,slim,Php,File Upload,Slim,我有用PHP编写的RESTAPI,它基于Slim框架 use Slim\Http\UploadedFile; $uploadedFiles = $request->getUploadedFiles(); $uploadedFile = $uploadedFiles['myFileName']; 我应该如何保护文件上传脚本?我不仅想设置文件大小的限制,还想保护我的web服务器不上传除图像(jpg、png)以外的任何内容。Slim中文件上传脚本的最佳实践是什么?您可以在服务器的php.ini

我有用PHP编写的RESTAPI,它基于Slim框架

use Slim\Http\UploadedFile;
$uploadedFiles = $request->getUploadedFiles();
$uploadedFile = $uploadedFiles['myFileName'];

我应该如何保护文件上传脚本?我不仅想设置文件大小的限制,还想保护我的web服务器不上传除图像(jpg、png)以外的任何内容。Slim中文件上传脚本的最佳实践是什么?

您可以在服务器的php.ini中限制上传文件大小限制,只需将
upload\u max\u filesize
指令的值更改为所需的最大限制

至于只允许某些文件类型,您可以通过以下方式实现:

<?php
$extension = pathinfo($uploadedFile, PATHINFO_EXTENSION);

$allowed = ["image/jpeg", "image/png"];
if(!in_array($extension, $allowed)) {
    $error = "File type is not allowed!";
}