我正在尝试使用Slim创建一个API端点,允许用户上传图像。然而,我遇到问题,因为我一直收到此错误消息,
“传递给moveUploadedFile()的参数2必须是。的实例 UploadedFile,Slim \ Http \ UploadedFile的实例给出“
这就是我在做的事情:
$directory = __DIR__.'/uploads';
function moveUploadedFile($directory, UploadedFile $uploadedFile)
{
$extension = pathinfo($uploadedFile->getClientFilename(), PATHINFO_EXTENSION);
// see http://php.net/manual/en/function.random-bytes.php
$basename = bin2hex(random_bytes(8));
$filename = sprintf('%s.%0.8s', $basename, $extension);
$uploadedFile->moveTo($directory . DIRECTORY_SEPARATOR . $filename);
return $filename;
}
$files = $request->getUploadedFiles();
$uploadedFile = $files['photo'];
if ($uploadedFile->getError() === UPLOAD_ERR_OK) {
$filename = moveUploadedFile($directory, $uploadedFile);
}
请问我如何解决这个问题?
答案 0 :(得分:1)
错误告诉您PHP正在当前命名空间中查找类UploadedFile
,因为您为其添加了typehint。由于当前命名空间中没有名为UploadedFile
的类,因此错误。
例如添加use
子句
use Slim\Http\UploadedFile;
...
function moveUploadedFile($directory, UploadedFile $uploadedFile)
{
...
}
或typehint完整的班级名称
function moveUploadedFile($directory, Slim\Http\UploadedFile $uploadedFile)
{
...
}