ВИХРЕВЫЕ PHP отправляют изображение

Это тривиально для получения изображения от сервера, но я думаю о чем-то другом. Это - сумасшедший вопрос, но... Действительно ли возможно отправить файл (изображение) на сервер, но не использующий загрузку формы или соединение FTP? Я хочу отправить запрос к, например, http://www.example.com/file.php с двоичным содержанием. Я думаю, что должен установить заголовок Типа контента image/jpeg, но как добавить некоторое содержание к моему запросу?

18
задан xxxZonexxx 8 August 2010 в 08:02
поделиться

3 ответа

существует несколько способов использования curl для загрузки файлов изображений, например:

$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/path/to/image.jpeg');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
//CURLOPT_SAFE_UPLOAD defaulted to true in 5.6.0
//So next line is required as of php >= 5.6.0
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);

вы можете посмотреть примеры на: http://au.php.net/manual/en/function.curl-setopt.php

21
ответ дан 30 November 2019 в 07:38
поделиться

см. http://docs.php.net/function.curl-setopt:

CURLOPT_POSTFIELDS Полные данные для публикации в операции HTTP "POST". Чтобы опубликовать файл, добавьте к имени файла @ и используйте полный путь. Это может быть передано в виде url-кодированной строки типа 'para1=val1¶2=val2&...' или в виде массива с именем поля в качестве ключа и данными поля в качестве значения. Если значение является массивом, заголовок Content-Type будет установлен в multipart/form-data.
10
ответ дан 30 November 2019 в 07:38
поделиться

VolkerK полностью прав, но мой опыт подсказывает, что отправка файла оператором "@" будет работать только с массивами.

$post['file'] = "@FILE_Path"

Теперь вы можете отправить файл, используя CURLOPT_POSTFIELDS

0
ответ дан 30 November 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: