Разработка в PHP использование CURL для загрузки изображения, загадочная проблема с типом upload / mime - PullRequest
0 голосов
/ 26 апреля 2020

Я могу успешно и вручную загрузить изображения на другой API-сервер с помощью этой командной строки на сервере. SHELL / BASH:

curl -v --user "myusername:mypassword" --header "Content-Type: image/jpeg" -X PUT -T /homepages/abc123/myfolder/mypic.jpeg https://other-server.com/api/upload/picture

Как это сделать автоматически с PHP и cURL?

Моя первая попытка выглядит следующим образом:

        $url = 'https://other-server.com/api/upload/picture';
        $filename_with_path = realpath('myfolder/mypic.jpeg');
        $file_data[ 'myfile' ] = new \CURLFile( $filename_with_path, 'image/jpeg', 'mypic.jpeg' );

        $curl = curl_init();
        curl_setopt( $curl, CURLOPT_URL, $url );
        curl_setopt( $curl, CURLOPT_USERPWD, "$user:$password" );
        curl_setopt( $curl, CURLOPT_HEADER, 1 );
        curl_setopt( $curl, CURLOPT_HTTPHEADER, array( 'Content-type: image/jpeg' ) );
        curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, "PUT" );
        curl_setopt( $curl, CURLOPT_POSTFIELDS, $file_data );
        curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, 1 );
        curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );

        $result = curl_exec( $curl );
        if(!curl_errno($curl))
        {
            $info = curl_getinfo($curl);
            return ( $info['http_code'] ); // 400=Bad request, 200=ok
        }
        curl_close( $curl );
        if ( empty( $result ) ) {
            $error_msg = '[empty]';
            return $error_msg;
        }
        return ( $result );

Но я всегда получал сообщение об ошибке с API-сервера, MIME-файл неверен. Я думаю, что файл образа не может быть найден cURL / PHP и не может быть отправлен на API-сервер, поэтому ошибка-массаж!

В некоторые дни go Я пытался с Laravel Lumen. Это не работает. И теперь я go шаг назад с cURL, но он все еще не работает: Загрузить изображение на внешний веб-сервис / API, используя Lumen / Laravel и Guzzle 6

Что вы думаю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...