Başlığı olmadan php bir Görüntü olarak bir Blob arka gösteriliyor ("Content-type: image / jpg");

5 Cevap php

Im benim MySQL veritabanı dışında ikili veri çekerek ve görüntü olarak görüntülemek istiyorum.

Ben (bu, diğer şeylerin yanı sıra databae için ekstra bir çağrı içerecektir) bu görüntüyü göstermek için ayrı bir sayfa yapmak istemiyorum

Ben sadece yapmak mümkün olmak istiyorum

Oldukça fazla ama $ image değişkeni longblob biçiminde olduğunu ve bunu dönüştürmek gerekir.

Şimdiden teşekkürler.

5 Cevap

Ben bu soruya belirli bir cevap değil biliyorum, ama bu veritabanı çağrı kaldırarak, önemli ölçüde, sunucu yükü artan, her sayfanın boyutunu artırarak ve sitenizin yanıt yavaşlama olduğunu düşünün.

Herhangi bir sayfa stackoverflow düşünün. Bunun en dinamik, yani sayfa önbelleğe edilemez. ancak kullanıcıların küçük statik ve önbelleğe alınabilir.

Eğer bir veri tanım olarak üzerlerine gönderirseniz, her sayfada her thumbnail DB arama ve veri transferi yapıyor.

Bağlantılı bir görüntü olarak gönderirseniz, size görüntü ilk yüklendiğinde tek bir DB arama uğramak, ve o andan itibaren üzerine (onunla doğru HTTP başlıklarını göndermek) önbelleğe alınmış olacak, sunucu yükü hafif yapma ve sitenizi daha hızlı koşmak!

Muhtemelen Base64 kodlu Veri URI'lere kullanarak bu yapabilirdi.

Ben düz bir img etiketi içine yapmak mümkün olup olmadığından emin değilim, ama bir div için bir arka plan görüntüsü ayarlayarak bunu yapabilirsiniz.

Temelde düzenli değiştirmek

.smurfette {
    background: url(smurfette.png);
}

karşı

.smurfette {
    background: url(data:image/png;base64,iVBORw0KGgo [...] P6VAAAAAElFTkSuQmCC);
}

Veri URI'lar desteklenir:

* Firefox 2+
* Safari – all versions
* Google Chrome – all versions
* Opera 7.2+
* Internet Explorer 8+

Info borrowed from Robert Nyman: http://robertnyman.com/2010/01/15/how-karşı-reduce-the-number-of-http-requests/

$ _GET Ayrı bir değişken yani $ myvar = $ _GET ['id'] içine sonuç; Eğer örneğin $ imageResult satırı işlemek önce:

$ Myid = $ _GET ['id'];

$ ImageResult = "Id = '$ idim' adlı oyuncu player.Image seçin";

cevaplar için teşekkürler, ive ayrı GetImage.php sayfası ile gitmeye karar verdi ama şimdi yapamam görevlerin basit yapmak gibi

$ImageResult = "select player.Image from player where Id = " . $_GET['Id']; 

    $result = mysql_query($ImageResult) or die ("data recovery failed -3");

    header("Content-type: image/jpeg");
    echo mysql_result($result, 0);

Ama bu sadece kırık bir link verir ve ben kaçırmış ne işe edemez