Javascript 如何对<;输入文件>;到AngularJs中的base64?

Javascript 如何对<;输入文件>;到AngularJs中的base64?,javascript,drupal,Javascript,Drupal,我需要通过Drupal服务/文件将图像保存到Drupal中。据我所知,我需要将文件解码为base64,并将其作为服务/文件的有效负载发送。为了做到这一点,我怎样才能对数据进行编码????我想用javascript实现这一点。你不需要AngularJs。这里有一个线程解释了如何使用Javascript和canvas执行此操作:我发现一些网站,如chrome、ie10等浏览器可能支持此功能 我建议您使用 按照使用此库的说明操作后,您只需调用: var imageData=$base64.encod

我需要通过Drupal服务/文件将图像保存到Drupal中。据我所知,我需要将文件解码为base64,并将其作为服务/文件的有效负载发送。为了做到这一点,我怎样才能对数据进行编码????我想用javascript实现这一点。

你不需要AngularJs。这里有一个线程解释了如何使用Javascript和canvas执行此操作:

我发现一些网站,如chrome、ie10等浏览器可能支持此功能


我建议您使用

按照使用此库的说明操作后,您只需调用:

var imageData=$base64.encode(image);
不要忘记在模块中插入:

.module('myApp', ['base64'])

我也有同样的问题,遇到了麻烦。我试过了,效果很好。

我是@GrimurD提到的一本书的作者。此指令非常适合此场景。它将图像(或任何其他文件类型)解析为base64编码,并将文件信息附加到范围内的模型

示例用法:

<input type='file' ng-model='yourModel' base-sixty-four-input>

它还提供了使用PHP或ruby对服务器中的base64文件进行解码的示例代码。

我知道它已经很旧了,但我来这里是为了一个解决方案

最后我发现(如果您不想使用外部库),在Base64中加载图像就像使用javascript一样简单

希望我的最终代码能帮助像我这样的初学者。它的特点是:

  • 使用HTML5的输入文件
    Input type='file'
    (灵感来自)
  • 从其他html元素触发输入(灵感来自)
  • 检查浏览器是否支持
    input type='file'
    (灵感来自)
它也在播放

angular.module('starter',[])
.controller('Ctrl',函数($scope){
$scope.data={};//初始化变量
$scope.click=function(){//default函数,如果浏览器支持输入type='file',将被覆盖
$scope.data.alert=“您的浏览器不支持HTML5输入类型='File'”
}
var fileSelect=document.createElement('input');//input它没有显示在html中,我想从其他元素触发它
fileSelect.type='file';
如果(fileSelect.disabled){//检查浏览器是否支持输入type='file',并停止控制器的执行
返回;
}
$scope.click=function(){//单击启动函数开始输入文件
fileSelect.click();
}
fileSelect.onchange=function(){//选择文件后将回调设置为操作
var f=fileSelect.files[0],
r=新文件读取器();
r、 onloadend=函数(e){//文件加载完成后回调
$scope.data.b64=e.target.result;
$scope.$apply();
console.log($scope.data.b64.replace(//^data:image\/(png | jpg);base64,/,“”);//如果要删除base64的“头”,请替换regex
//在这里,您可以根据需要通过服务器发送数据
}
r、 readAsDataURL(f);//定义所有回调后,开始读取文件
};
});

单击以选择并获取base64

基本数据:
{{data.alert} {{data.b64}
这可以帮助您,包含文件阅读器、画布调整大小和另存为PNG的完整示例,该库运行良好。我将它与基于php的REST服务器结合使用。我如何使用该库和@Abdrahmn_msi?我是维护者-在repo上提出一个问题以寻求帮助如何从图像文件中获得一个非常优雅的扩展,可通过
bower
安装。很棒的插件。热爱它很棒的插件!这救了我一天!
{
  "filetype": "text/plain",
  "filename": "textfile.txt",
  "base64": "/asdjfo4sa]f57as]fd42sdf354asdf2as35fd4"
}