Вам нужно сначала создать URI, например:
String urlStr = "http://www.example.com/CEREC® Materials & Accessories/IPS Empress® CAD.pdf"
URL url= new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
Затем преобразовать эту строку Uri в ASCII:
urlStr=uri.toASCIIString();
Теперь ваша строка url полностью закодирована, простое кодирование url, а затем мы преобразовали его в ASCII String, чтобы убедиться, что в строке нет символа вне US-ASCII. Это как раз то, как делают браузеры.
Мой подозреваемый - это, конечно, фактические данные base64, в противном случае это выглядит хорошо для меня. См. эту скрипту , где работает аналогичная схема. Вы можете попробовать указать набор символов.
<div>
<p>Taken from wikpedia</p>
<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
</div>
Вы можете попробовать этот декодер base64 , чтобы узнать, правильны ли ваши данные base64 или нет.
Кажется, в вашем URL-адресе есть некоторая ошибка.
Вы можете использовать этот онлайн-инструмент base64 encode / base64 decode для кодирования ваших изображений для embeding: http://base64online.org/encode/
Установите флажок «Формат как URL-адрес данных» для форматирования данных base64 как URL.
Символ +, встречающийся в URI данных, должен быть закодирован как% 2B. Это похоже на кодирование любой другой строки в URI. Например, разделители аргументов (? И & amp;) должны быть закодированы, когда URI с аргументом отправляется как часть другого URI.
То, что я сделал, - это конец url с img.jpg, чтобы избежать кэширования и потерять возможность проверить, открыл ли клиент электронное письмо, полный URL-адрес выглядит как «http://midomain.com/<Random letters numbers>/img.jpg
»
Использование случайных в качестве части URL, Google не будет кэшировать изображение. Важной частью является конец URL с допустимым именем изображения с расширением.
Это мой код Symfony (я думаю, что это тоже хорошо для голого PHP) для отправки изображения.
$im = imagecreatetruecolor(1,1);
$white = imagecolorallocate($im, 255, 255, 255);
imagesetpixel ($im , 0 , 0 , $white);
header('Content-Type: image/jpeg');
// Output the image
imagejpeg($im);
// Free up memory
imagedestroy($im);
exit;
exit
очень важен, так что PHP ничего не посылает.
В соответствии с синтаксисом схемы URI данных вам необходимо указать правильный тип содержимого, кодирование содержимого и кодировку, например
data:image/jpeg;charset=utf-8;base64,
:
data:[<media type>][;charset=<character set>][;base64],<data>
Также см. http://danielmclaren.com/node/90
input
вместо img
? Я хочу показать значение на ярлыке или текстовом поле вместо изображения.
– Mr.Hyde
26 July 2018 в 05:29
вы можете поместить свои данные непосредственно в статусе url, например
src = 'url(imageData)' ;
, и для получения данных изображения вы можете использовать функцию php
$imageContent = file_get_contents("imageDir/".$imgName);
$imageData = base64_encode($imageContent);
, чтобы вы могли копировать вставьте значение imageData и вставьте его прямо в свой URL-адрес и назначьте его атрибуту src вашего изображения
Будет показано изображение базовых 64 данных:
<style>
.logo {
width: 290px;
height: 63px;
background: url(data:image/png;base64,copy-paste-base64-data-here) no-repeat;
}
</style>
<div class="logo"/>
вы можете использовать это
$image = 'http://images.itracki.com/2011/06/favicon.png';
// Read image path, convert to base64 encoding
$imageData = base64_encode(file_get_contents($image));
// Format the image SRC: data:{mime};base64,{data};
$src = 'data: '.mime_content_type($image).';base64,'.$imageData;
// Echo out a sample image
echo '<img src="'.$src.'">';