Ошибка при загрузке изображений с использованием Slim Framework - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь создать конечную точку API с помощью Slim, которая позволяет людям загружать изображения.У меня, однако, возникают проблемы, так как я продолжаю получать это сообщение об ошибке,

"Аргумент 2, переданный в moveUploadedFile (), должен быть экземпляром 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);                    
}

Пожалуйста, как мне это решить?

1 Ответ

0 голосов
/ 24 мая 2018

Ошибка говорит вам, что PHP ищет класс UploadedFile в текущем пространстве имен, потому что вы добавляете typehint для него.Поскольку в вашем текущем пространстве имен нет класса с именем UploadedFile, отсюда и ошибка.

Добавьте use предложение, например,

use Slim\Http\UploadedFile;

...
function moveUploadedFile($directory,  UploadedFile $uploadedFile)
{
    ...
}

или введите полное имя класса

function moveUploadedFile($directory,  Slim\Http\UploadedFile $uploadedFile)
{
    ...
}
...