我正试着用angular进行上传。我正在使用这个plunkr http://plnkr.co/edit/qLckEIlNLEcIfvwn4Q5x?p=preview
我应该在这里写什么如果我想在项目文件夹中上传照片:
element.fileupload({
dataType: 'json',
url: './api',
done: function(e, data) {
$log.log("done accessed");
},
fail: function(e, data) {
$log.log("fail accessed");
},
progress: function(e, data) {
options.progress = parseInt(data.loaded / data.total * 100, 10);
scope.$apply();
$log.log(options)
$log.log("progress");
},
//add: function(e,data){
//$log.log("add accessed");
//},
submit: function(e, data) {
$log.log("notetext:", options.notetext);
data.formData = {
Description: options.notetext
};
$log.log("submit accessed");
}
});
答案 0 :(得分:0)
最简单的方法是使用HTML5 API,即FileReader
jsfiddle:
HTML非常简单:
<input type="file" id="file" name="file"/>
<button ng-click="add()">Add</button>
在你的控制器中定义'add'方法:
$scope.add = function(){
var f = document.getElementById('file').files[0],
r = new FileReader();
r.onloadend = function(e){
var data = e.target.result;
//send you binary data via $http or $resource or do anything else with it
}
r.readAsBinaryString(f);
}
浏览器兼容性
桌面浏览器
Firefox(Gecko)3.6(1.9.2),Chrome 7,Internet Explorer * 10,Opera * 12.02,Safari 6.0.2
移动浏览器
Firefox(Gecko)32, Chrome 3, Internet Explorer * 10, 歌剧* 11.5, Safari 6.1
注意:不推荐使用readAsBinaryString()方法,而应使用readAsArrayBuffer()。
快乐帮助!