我刚刚开始使用jhipster 5和angular 5.我有一个表单,除了几个常规字段之外,我有一个文件输入。
我找不到任何关于如何在jhipster中归档的文档。
编辑1:
我可以设法上传文件并发送到服务器。下面是我处理表单提交的服务器方法。
@PostMapping("/email-jobs")
@Timed
public ResponseEntity<EmailJobDTO> createEmailJob(MultipartFile file, @Valid @RequestBody EmailJobDTO emailJobDTO) throws URISyntaxException {
log.debug("REST request to save EmailJob : {}", emailJobDTO);
if (emailJobDTO.getId() != null) {
throw new BadRequestAlertException("A new emailJob cannot already have an ID", ENTITY_NAME, "idexists");
}
System.out.println(file.getName() + " File Name ");
EmailJobDTO result = emailJobService.save(emailJobDTO);
return ResponseEntity.created(new URI("/api/email-jobs/" + result.getId()))
.headers(HeaderUtil.createEntityCreationAlert(ENTITY_NAME, result.getId().toString()))
.body(result);
}
这里我得到以下异常,
Unsupported Media Type: Content type 'multipart/form-data;boundary=----WebKitFormBoundary73sdwuJtdeRk6xsO;charset=UTF-8' not supported
如果我从方法签名中删除@RequestBody,那么我不会得到异常,但后来我开始得到400个错误请求异常,说我的表单字段不能为空。
答案 0 :(得分:0)
您必须定义MultipartFile @RequestParam
并在帖子映射中声明produces = MediaType.APPLICATION_JSON_VALUE
,例如:
@PostMapping("/email-jobs", produces = MediaType.APPLICATION_JSON_VALUE)
客户端,您可以尝试发送请求:
Upload.upload({
url: 'api/path',
data: {
file: yourdatafile
},
headers: {'Content-Type': 'multipart/form-data'}
}).progress(function (evt) {
// handle progress
}).success(function (data, status, headers, config) {
// handle success
});
答案 1 :(得分:-1)
与其上载文件,不如创建一个BLOB字段类型,然后在您的业务逻辑中,根据需要创建文件。