@soveckii_fonarik
аспирант,начинающий программист - преподаватель

Как с форма принять изображение и отправить его на заданный URL?

Добрый день. все никак не могу отправить изображение в вк.
есть форма, на которой пользователь выбирает изображение :
<form action="index.php" method='post' enctype="multipart/form-data">
        <fieldset>
            <label for="user_pic">Upload picture:</label>
            <input type="file" name="user_pic" >
        </fieldset>
        <fieldset>
            <input type="submit" value='Upload'>
        </fieldset>
    </form>


так я принимаю его скриптом :
if ($_FILES['user_pic']) {
    $img = file_get_contents($_FILES['user_pic']['tmp_name']);
    $vk->uploadPicture('номер группы !!' , $img);
}


а вот и сама функция по отправке
public function uploadPicture($GroupID, $pictures)
    {
        /*
        *  photos.getWallUploadServer
        *Возвращает адрес сервера для загрузки фотографии на стену пользователя или сообщества.
        */
        $params = [
            'group_id' => $GroupID,
            'access_token' => $_SESSION['AccessToken']
        ];
        $Info = json_decode(file_get_contents('https://api.vk.com/method/photos.getWallUploadServer' . '?' . urldecode(http_build_query($params))), true);

        //все хорошо, получили URL
        // отправляем на полученный URL нашу картинку
        if (isset($Info['response'])) {
            $params = [
                'photo' => $pictures
            ];
            $Info = file_get_contents($Info['response']['upload_url'] . '&' . urldecode(http_build_query($params)));
            print '<p>' . var_dump($Info) . '</p>'; // возвращает NULL....

            /*
             * если уж и тут все хорошо, Сохраняем фотографии после успешной загрузки на URI
             */

правильно ли я получаю картинку из формы и отправляю её функции ?
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 1
atnartur
@atnartur
Веб-разработчик
Принимать файл на PHP надо таким образом: php.net/manual/ru/features.file-upload.post-method.php
Чтобы загрузить его на ВКонтакте, надо загруженный файл поместить в какую-нибудь временную папку. Потом надо загрузить его во ВКонтакте. (подробное описание процесса: vk.com/dev/upload_files)
После загрузки файла, нужно будет его сохранить и прикрепить к записи или куда-нибудь еще. Надеюсь, объяснил понятно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы