PHP, IIS Görüntü tarayıcıda görüntüleniyor değil

2 Cevap php

Aşağıdaki kod IIS 6/PHP 5.2.9 görüntüyü görüntüleme değildir. Bu XAMPP (PHP 5.3) den Tamam çalışır

$img = @imagecreate(200, 200);
$background_color = imagecolorallocate($img, 0, 0, 0);
$text_color = imagecolorallocate($img, 233, 14, 91);
imagestring($img, 12, 60, 90,  'image here', $text_color);
header('Last-Modified: ' . date('D, d M Y H:i:s')); 
header('Content-type: image/jpg');
header('Content-Disposition: inline; filename=blank_jpeg.jpg'); 
ob_start();
    imagejpeg($img);
    imagedestroy($img);
    $jpeg = ob_get_contents();
ob_end_clean();
header ('Content-length: ' . strlen($jpeg));
echo $jpeg;
exit;

2 Cevap

Değil GD daha büyük olasılıkla IIS için doğru yüklenmemiştir.

error logging, specify an error log açın ve komut çağrılırken hataları için kontrol edin.

Sonunda köklerine hatayı izlenir. Bu kod Wordpress üzerinde çalışan bir eklenti oldu. Şimdi Wordpress toplumda, işleme dayalı mod_rewrite'ı bazı uygun bir yolu yoktur sistemleri IIS üzerinde oldukça-adresler etkinleştirmek için kullanılan bir tekniktir. Tekniği oldukça-adresler kaynaklanan 404 hataları yakalamak ve index.php yoluyla sayfasını yeniden yönlendirme içerir.

Bu çıkıyor ki bir yerde yol boyunca bazı karakterler 3 (ï, » ve ¿) diğer herhangi bir sayfa çıktı önce çıkış akımına eklenir. Karakterler görünmez ve tarayıcı sadece onları görmezden beri bu html sayfaları için bir sorun değildir. Bununla birlikte, görüntü olması durumunda, ikili veri biçimi kritik öneme sahiptir. Yani öncesinde bir görüntü beklediğini beri tarayıcı tarafından reddedilen bir bayt tanınmaz dizisinde görüntü veri sonuçlarının bu üç karakterleri ekleme.

Benim özel durumda Çözelti mod_rewrite kullanıma olanak tanımak için ve problem ortadan kayboldu. Ben bu bilgi ayıklama birisi saat kaydeder umuyoruz.