我已经在几天内搜索了一个解决方案。人们尝试上传图片的例子有很多。 我真的需要一些帮助来解决这个问题。我在这里有一些代码,我希望有人可以帮助我完成这个。
我在此link
中添加了我的代码//Angularjs controller :
self.createVaerksted = function(id, navn, by, nummer, billede) {
var data = {};
data.vaerkstedNavn = navn;
data.byNavn = by;
data.vaerkstedNummer = nummer;
data.myImage = billede[0];
vaerkstedService.createVaerksted(data)
.then(function(response) {
console.log(response)
})
// Angularjs service
var prefix = 'http://localhost:8080/api/';
createVaerksted: function(data) {
return $http.post(prefix + 'saveVaerksted', data)
}
提前谢谢
答案 0 :(得分:0)
要使用AngularJS上传文件(图像,xls等),您可以使用FormData。 例如,使用Angular配置文件可以创建角度控制器:
firebase.auth().signInWithEmailAndPassword(inputemail, inputpassw)
.then( function(user) {
myEmail = user.email;
myUid = user.uid;
user.getIdToken()
.then( function(token){
myToken = token;
location.href = "http://www.example.com/verify?email="+myEmail+"&token="+myToken+"&uid="+myUid;
});
}, function (error) {
...
});
创建Grails命令:
function UploadExcelController(domainServiceFactory, contextPath, $log, $state, $stateParams) {
var vm = this;
vm.contextPath = contextPath;
var UploadExcel = domainServiceFactory('/api/uploadExcel/:id', {id: '@id'}, {
create: {
method: "POST",
transformRequest: angular.identity,
headers: { 'Content-Type': undefined }
}
});
vm.uploadExcel = function(data){
var fd = new FormData();
fd.append("year", data["year"]);
fd.append("excelFile", data["excelFile"][0]);
$log.info(fd)
UploadExcel.create({}, fd).$promise.then(function (res) {
$state.go('dashboard');
}).catch(function (err) {
$log.info("error "+err);
alert(""+err);
throw err;
});
}
并在控制器中执行业务逻辑:
class UploadExcelCommand implements Validateable {
MultipartFile excelFile
Integer year
static constraints = {
year nullable: false
excelFile validator: { val, obj ->
if ( val == null ) {
return false
}
if ( val.empty ) {
return false
}
['xlsx'].any { extension ->
val.originalFilename?.toLowerCase()?.endsWith(extension)
}
}
}
}