如何以jhipster形式上传文件?

时间:2018-04-11 06:28:10

标签: file-upload angular5 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个错误请求异常,说我的表单字段不能为空。

2 个答案:

答案 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字段类型,然后在您的业务逻辑中,根据需要创建文件。