我已经在几天内寻找解决方案。人们尝试上传图片的例子很多。
我真的需要一些帮助来解决这个问题。我在这里有一些代码,希望有人可以帮助我解决这个问题。
我已经在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)
}
先感谢您
最佳答案
要使用AngularJS上传文件(图像,xls等),您可以使用FormData。
例如,使用Angular轮廓可以创建一个 Angular Controller :
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;
});
}
创建Grails命令:
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)
}
}
}
并在 Controller 中执行业务逻辑:
class UploadExcelController {
static responseFormats = ['json', 'xml']
def save(UploadExcelCommand cmd) {
if( cmd.hasErrors() ) {
render 404
return
}
if( Excel.get(cmd.year) ){
render 404
return
}
println cmd.year
println cmd.excelFile.inputStream
render "OK"
}
}
关于angularjs - 从angularjs 1.5上传图像到grails 3作为byte []并将其保存在postgresql中作为bytea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44243557/