iam new sencha touch。
我正在做一个项目,在那个项目中,我需要将图像转换为base64字符串,iam上传图像,然后iam获得图像的全部路径,但是我无法将图像转换为base64字符串。
请帮助我解决这个问题。 确保iam在sencha中询问
答案 0 :(得分:0)
您如何访问这些文件?图像来自哪里?如果他们来自相机或照片库,那么Phonegap是获取它们的最佳方式。在这种情况下,PG解决了Base64编码。如果你试图用纯粹的js解决它,那么你需要做更多的工作。 Sencha不提供base64编码的功能。因此,如果您为项目添加一些功能,最好的选择。网上有很多资源如何在javascript中进行base64编码。例如。请参阅此处的讨论Base64 encoding and decoding in client-side Javascript
答案 1 :(得分:0)
以下代码段可帮助您上传图片并获取base64数据 在您的视图中,您应该具有sencha touch的以下文件字段组件
Ext.define('MyApp.view.Main', {
extend: 'Ext.form.Panel',
xtype: 'main',
requires: [
'Ext.TitleBar',
'Ext.Video'
],
config: {
tabBarPosition: 'bottom',
items: [
{
xtype: 'filefield',
id: 'idfilefieldSample',
name: 'filefieldSample',
accept: 'image'
},
]
}
});
你的控制器看起来像这样:
Ext.define('MyApp.controller.MainController', {
extend: 'Ext.app.Controller',
config:{
control:{
'filefield[name=filefieldSample]': {
change: 'onChangefilefield',
},
}
},
onChangefilefield: function(filefield, newData, oldData, eOpts)
{
var filesSelected = Ext.getCmp('idfilefieldSample').getComponent().input.dom.files;
if (filesSelected.length > 0)
{
var fileToLoad = filesSelected[0];
var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent)
{
var srcData = fileLoadedEvent.target.result;
console.log(srcData);
}
fileReader.readAsDataURL(fileToLoad);
}
},
});