我通过以下PHP代码将图像编码到base64中:
$file = fopen($arquivoImagem,"rb", 0);
$gambar = fread($file,filesize($arquivoImagem));
fclose($file);
$base64 = chunk_split(base64_encode($gambar));
在此之后,我将$ base64变量写入文件,稍后我通过Sencha Touch中的ajax读取它。我可以正常读取$ base64变量,但是我无法将base64图像定义为Sencha Touch中的背景。我试图通过上面的代码来做到这一点。 " imagem"变量包含PHP中$ base64变量的内容。
Ext.define("myapp.view.Main", {
extend: 'Ext.Panel',
alias: 'widget.mainForm',
requires: ['Ext.Label', 'Ext.Button'],
initialize: function () {
var imagem;
var store = Ext.getStore('ImagemMenu').load();
store.each(function(record) {
if (record.get('local') == 0) {
imagem = record.get('imagem');
var estilo = "background-image: url('data:image/png;base64," + imagem + "');";
this.setStyle(estilo);
}
});
},
...
无论如何,我的问题是:如何在Sencha Touch 2中将base64图像定义为背景?
提前谢谢你。
答案 0 :(得分:0)
这有点痛苦,因为Sencha试图解析传入的字符串并基本上将其拆分:这意味着base64图像字符串不起作用。因此,您需要使用对象调用setStyle,例如在您的代码中:
var estilo = "url('data:image/png;base64," + imagem + "')";
this.setStyle({'background-image', estilo});
同样重要的是要注意,你不能在样式字符串的末尾加上分号,否则它就不会起作用。
希望有所帮助!