Как POST загрузить файл через PHP CURL - PullRequest
0 голосов
/ 03 января 2019

Итак, я пытался загрузить файл через Curl.У меня есть текстовый файл на моем локальном сервере в корневом каталоге.Когда я пытаюсь это сделать, он говорит, что файл был успешно загружен, но текст внутри txt отличается от имеющегося у меня txt.

    $postData = array(
        'folderId' => '3276800',
        'filename' => 'TxT_12323.txt',
        'filedata' => '@847327489732984.txt',
    );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://192.168.1.103/services/rest/document/upload");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
    curl_setopt($ch, CURLOPT_USERPWD, "admin" . ":" . "admin");

    $result = curl_exec($ch);

    if (curl_errno($ch))
    {
        echo 'Error:' . curl_error($ch);
        exit();
    }

    echo "Upload Successful!<br><br>Return: " . $result;

    curl_close($ch);

Предполагается, что загруженный файл имееттот же внутренний текст, что и 847327489732984.txt, но при открытии .txt внутри него просто есть "@ 847327489732984.txt".

Итак, файл загружается неправильно.

Я исправил этовместо

'filedata' => '@847327489732984.txt'

я сделал

'filedata' => file_get_contents('123.pdf')

1 Ответ

0 голосов
/ 03 января 2019

Вы должны сделать что-то вроде этого

$postData = array(
    'folderId' => '3276800',
    'filename' => 'TxT_12323.txt',
    'filedata' => file_get_contents('847327489732984.txt'),
);

По большей части вы можете рассматривать любой файл как строковые данные в PHP. Это не означает, что вы можете читать и понимать их, но они могут быть представлены таким образом в переменной или выводе и должны работать просто отлично.

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