Загрузка файла с помощью Restler v3

Совсем недавно в Restler v3 была добавлена ​​поддержка загрузки multipart/form-data (источник), но я не могу заставить его работать. В моем файле index.php я добавил:

$r->setSupportedFormats('JsonFormat', 'UploadFormat');

Когда я публикую файл .txt, я получаю следующую ошибку (что ожидаемо, поскольку «разрешенным» форматом по умолчанию является «image/jpeg», «image/png»:

"error": {
    "code": 403,
    "message": "Forbidden: File type (text/plain) is not supported."
}

Но когда я публикую файл .jpg, вместо этого я получаю следующую ошибку:

"error": {
    "code": 404,
    "message": "Not Found"
}

Что мне не хватает? Вот моя функция:

function upload() {
    if (empty($request_data)) {
        throw new RestException(412, "requestData is null");
    }
    return array('upload_status'=>'image uploaded successfully');
}

person Andrew Bucklin    schedule 31.03.2013    source источник


Ответы (1)


Я понял! Все, что мне нужно, это функция post()! Для тех, кто сталкивается с той же проблемой, с которой столкнулся я, вот мое решение для загрузки файла с помощью Restler 3:

index.php

<?php
    require_once '../vendor/restler.php';
    use Luracast\Restler\Restler;

    $r = new Restler();    
    $r->addAPIClass('Upload');  
    $r->setSupportedFormats('JsonFormat', 'UploadFormat');

    $r->handle();

Загрузить.php

<?php
    class Upload {
        function get(){
           if (empty($request_data)) {
              throw new RestException(412, "requestData is null");
           }
        }

        function post($request_data=NULL) {
           return array('upload_status'=>'image uploaded successfully!');
        }
    }
person Andrew Bucklin    schedule 31.03.2013