Как сохранить файл изображения в каталоге вместо загрузки по ссылке, предоставленной крошечным png API

Я реализовал код PHP из крошечного API png, в котором я хочу сжать свой файл PNG. Но когда я выполняю этот код, он предоставляет мне ссылку для загрузки этого файла. Вместо этого я хочу, чтобы все эти файлы изображений автоматически сохранялись в указанный мной каталог.

$key = "tiny png api key";
$input = "images2.png";
$output = "images2.png";

$request = curl_init();
curl_setopt_array($request, array(
CURLOPT_URL => "https://api.tinypng.com/shrink",
CURLOPT_USERPWD => "api:" . $key,
CURLOPT_POSTFIELDS => file_get_contents($input),
CURLOPT_BINARYTRANSFER => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
/* Uncomment below if you have trouble validating our SSL certificate.
 Download cacert.pem from: http://curl.haxx.se/ca/cacert.pem */
// CURLOPT_CAINFO => __DIR__ . "/cacert.pem",
 CURLOPT_SSL_VERIFYPEER => true
 ));

$response = curl_exec($request);
echo $response."<BR>";
if (curl_getinfo($request, CURLINFO_HTTP_CODE) === 201) {
/* Compression was successful, retrieve output from Location header. */
$headers = substr($response, 0, curl_getinfo($request, CURLINFO_HEADER_SIZE));
foreach (explode("\r\n", $headers) as $header) {
if (substr($header, 0, 10) === "Location: ") {
   $request = curl_init();
   curl_setopt_array($request, array(
   CURLOPT_URL => substr($header, 10),
   CURLOPT_RETURNTRANSFER => true,
   /* Uncomment below if you have trouble validating our SSL certificate. */
   // CURLOPT_CAINFO => __DIR__ . "/cacert.pem",
    CURLOPT_SSL_VERIFYPEER => true
  ));
  file_put_contents($output, curl_exec($request));
 }
 }
 } else {
 print(curl_error($request));
 /* Something went wrong! */
 print("Compression failed");
 }

person anand    schedule 08.04.2014    source источник
comment
Код взят с сайта tinypng.com/developers/reference. Обращались ли вы в их службу поддержки? Что они ответили?   -  person blue    schedule 08.04.2014
comment
да, я отправил им письмо по этому вопросу, но до сих пор не получил ответа с их стороны.   -  person anand    schedule 08.04.2014
comment
Теперь он работает нормально, я могу получить файл изображения с заданным пользователем именем и загрузить его в указанный пользователем каталог; с помощью file_put_contents($output,curl_exec($request)) ; эти операторы загружают файл в указанный каталог ($ output); мой файл не загружался во многие папки, кроме папки /tmp в Ubuntu 12.04;   -  person anand    schedule 08.04.2014
comment
я думаю, что этот png/jpg компрессор лучше way2enjoy.com/compress-png, так как он позволяет 50 файлов за один раз. если вы знаете что-то лучше, пожалуйста, поделитесь ссылкой   -  person Steeve    schedule 13.02.2017