Как я могу отправить и получить положенный запрос с тем же скриптом

Мне нужно получить изображение, отправленное методом PUT. Поэтому я пишу скрипт для его тестирования. Я хочу получить и отправить его с тем же сценарием. Как я могу это реализовать? В следующем варианте ничего не говорится о строке Поздравляем, что метод http был отправлен нормально.

<?php
//if they DID upload a file...
var_dump(file_get_contents("php://input"));
if($_FILES['photo']['tmp_name'])
{
echo $_FILES['photo']['error'];
if($_FILES['photo']['error']==0)
{
//now is the time to modify the future file name and validate the file
$new_file_name = strtolower($_FILES['photo']['tmp_name']); //rename file
$message = 'Congratulations!!!!!!!.';
//move it to where we want it to be
move_uploaded_file($_FILES['photo']['tmp_name'], 'url.../1.jpg');

echo'Congratulations!  Your file was accepted.';
$image = fopen('url.../1.jpg', "rb");
var_dump($image);
$ch = curl_init();/* Set cURL options. */
curl_setopt($ch, CURLOPT_URL, "http://url.../upload.php");
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_INFILE, $image);
curl_setopt($ch, CURLOPT_INFILESIZE, strlen($image));

/* Execute the PUT and clean up */
$result = curl_exec($ch);
fclose($image);             //recommended to close the fileshandler after action
curl_close($ch);
}
//if there is an error...
else
{
//set that to be the returned message
$message = 'Ooops!  Your upload triggered the following error:  '.$_FILES['photo']['error'];
}
}
else
{
echo"WORKS";
}

1

Решение

Самый простой способ отправить изображение обратно в браузер — использовать URL.

  1. Обработать изображение
  2. Сохраните изображение где-нибудь на вашем сервере
  3. Отправьте URL обратно в браузер.
  4. Используйте тег в браузере и покажите свое изображение.
<?PHP
$imgFile="";
if($_FILES['photo']['tmp_name'])
{
///Your existing code
$imgFile="http://" . $_SERVER['HTTP_HOST'] .'/Your image url here';
//Ex:\\ http://yourserver.com/images/1.jpg -
//you can take this from your move_upload_file
}

?>
<img src="<?PHP echo $imgFile; ?>" />

Полезные ссылки Как получить файл через HTTP PUT с PHP

Даже для спокойного сервиса вы можете использовать json или xml для отправки URL-адреса изображения. PUT не очень хорошая идея, если вам по какой-то причине не нужно возвращать данные изображения. Может быть, вы должны переосмыслить свою логику?

1

Другие решения

Ошибки были:
strlen($image) strlen, если неправильно, должен быть размер файла и в моем URL я имел www, В моем сообщении это не так, но это была ошибка.
Помог мне более опытный программист.
r.php для чтения потока:

$ res = file_get_contents («php: // input»);

$file = fopen('1.txt', "w");
fputs($file, $res);
fclose($file);

var_dump($res);

s.php, чтобы получить поток и инициализировать r.php

$image = fopen('/var/www/testfiles/1.jpg', "rb");
var_dump($image);
$ch = curl_init();/* Set cURL options. */

curl_setopt($ch, CURLOPT_URL, "http://url withot www/r.php");
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_INFILE, $image);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize('/var/www/testfiles/1.jpg'));

/* Execute the PUT and clean up */
$result = curl_exec($ch);
fclose($image);             //recommended to close the fileshandler after action
curl_close($ch);

die("OK");
0

По вопросам рекламы [email protected]