Ben bir uzak sunucuda bir görüntüden bir ImageIcon oluşturmanız gerekir. Ben gibi bir URL ile yüklendiğinde, http://www.server.com/1.png
iyi çalıştı.
Görüntüleri web kök dışında saklanır ve get_image.php görüntüyü hizmet etmek doğru başlıklarını çıktılar http://www.server.com/get_image.php?id=1
gibi bir şey, erişilebilir olmalıdır böylece Ama son zamanlarda sunucu değişti. Ben URL türü ile bir ImageIcon oluşturduğunuzda, herhangi bir istisna ve getImageLoadStatus atma olmadan yüklenmemesi () MediaTracker.ERRORED döndürür. Görüntü veren komut bir tarayıcı çalışıyor.
Herhangi bir fikir nasıl bu işi yapabiliriz?
Teşekkürler.
Düzenleme: Burada Java kod.
ImageIcon labelIcon = new ImageIcon(new URL(IMAGE_URL));
System.out.println(labelIcon.getImageLoadStatus());
Ben de aşağıdaki çalıştı, ama o da işe yaramadı.
ImageIcon labelIcon = new ImageIcon();
BufferedImage image = ImageIO.read(new URL(IMAGE_URL));
labelIcon.setImage(image);
Düzenleme: İşte get_image.php gelen kod. $ DB MySQL veritabanı ile etkileşim için kullanılan global.php itibaren dahil bir nesnedir. Ben iade edilen MIME tipi image / png olduğu doğrulandı.
<?php
if (isset($_GET['uid']))
{
require_once('./include/global.php');
getUpload(intval($_GET['uid']));
}
function getUpload($id)
{
global $DB;
$query = "SELECT `name`, `mime_type` FROM `uploads` WHERE `id` = " . $id . " LIMIT 1";
$arrUpload = $DB->getSingleRecord($query);
if (count($arrUpload) > 0)
{
$file = UPLOADS_ROOT . $arrUpload['name'];
header("Content-type: " . $arrUpload['mime_type']);
header("Content-Disposition: filename=" . $arrUpload['name']);
readfile($file);
}
else
{
header("HTTP/1.1 404 Not Found");
}
die();
}
?>