如何以 jhipster 形式上传文件?



我刚刚开始使用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 个错误请求异常,说我的表单字段不能为空。

您必须定义 MultipartFile is@RequestParam并在 post 映射中声明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
});

与其上传文件,不如将字段类型创建为 BLOB,然后在业务逻辑中根据需要创建一个文件,否则就这样做。

最新更新