+ file_get_contents echo () ilave hat çıkışına sonları ekler

0 Cevap php

Aşağıdaki kod cURL kullanarak bir istemci siteye bir sunucudan anında oluşturulan bir görüntü aktarır. Son zamanlarda çalışmayı durdurdu ve sorunun ne olduğunu bulmak mümkün olmamıştır:


    // get_image.php
    ob_start();

    // create a new CURL resource
    $ch = curl_init();

    // set URL and other appropriate options
    curl_setopt($ch, CURLOPT_URL, 'url/to/image.php');
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // set timeouts
    set_time_limit(30);                     
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);  

    // open a stream for writing
    $outFile = fopen($fileDestination, 'wb');

    curl_setopt($ch, CURLOPT_FILE, $outFile);

    // grab file from URL
    curl_exec($ch);
    fclose($outFile);

    // close CURL resource, and free up system resources
    curl_close($ch);
    ob_end_clean();

  //image.php

  /*
   * Create image based on client site ...
   */

  $filePath  = 'path/to/image.png'
  $imageFile = file_get_contents($filePath);

  header("content-type: image/png");        
  echo $imageFile;
  unlink($filePath);

Dosya get_image.php bir istemci sitede bulunan ve benim sunucu bulunan dosya image.php çağırır.

Bu kodu çalıştırdıktan sonra istemci sitesinde görüntü orijinal yaklaşık 7 bayt büyüktür, bu bayt satır sonları gibi görünüyor. Birkaç saat boyunca hata ayıklama sonra ben $ imagefile echo bu byte eklenir öğrendim. 7 bayt elle çıkan görüntü çıkarılırsa, resim düzgün görüntüler.

Atılan hiçbir hata ne de istisnalar vardır. Sunucuda oluşturulan görüntü hiçbir sorunları ile oluşturulur. "Içerdiği hatalar nedeniyle, görüntü 'url / / image.php için' görüntülenemiyor" FF tek çıkışı

Ben bu neden ne emin değilim. Yardım büyük takdir.

  • Onema

UPDATE:

0 Cevap