Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过angular 5将文件对象发送到Spring Rest控制器_Spring_Angular_Rest - Fatal编程技术网

通过angular 5将文件对象发送到Spring Rest控制器

通过angular 5将文件对象发送到Spring Rest控制器,spring,angular,rest,Spring,Angular,Rest,我试图在客户端上传一个文件,并向SpringREST控制器发送HTTPPOST请求。但当我在Rest控制器中收到文件对象时,我可以将其视为“null”。 HTML代码: <input type="file" id="myFile" (change) = "onFileChange($event)" #fileInput> 我的弹簧休息控制器: @RequestMapping(value="/abc", method = RequestMethod.POST, consumes =

我试图在客户端上传一个文件,并向SpringREST控制器发送HTTPPOST请求。但当我在Rest控制器中收到文件对象时,我可以将其视为“null”。 HTML代码:

<input type="file" id="myFile" (change) = "onFileChange($event)" #fileInput>
我的弹簧休息控制器:

@RequestMapping(value="/abc", method = RequestMethod.POST, consumes = "application/pdf") 
public ResponseEntity<String> uploadFile(@RequestBody MultipartFile file) {
    System.out.println("Inside Controller");
    return new ResponseEntity<>("true", HttpStatus.CREATED);
}
@RequestMapping(value=“/abc”,method=RequestMethod.POST,consumes=“application/pdf”)
公共响应属性上载文件(@RequestBody MultipartFile){
System.out.println(“内部控制器”);
返回新的ResponseEntity(“true”,HttpStatus.CREATED);
}
请任何人帮我找出这个问题。

根据我的说法,最简单的方法是使用FormData对象

以下是如何:

@viewChild() fileInput: ElementRef;

onFileChange(event) {
  const files = this.fileInput.nativeElement.files as FileList;
  const file = files.item(0);

  const formData = new FormData();
  formData.append('pdf', file, file.name);
  this.http.post('abc', formData, {
    headers: new HttpHeaders().set('content-type','application/pdf')
  }).subscribe(
    data => console.log(data),
    err => console.log(err)
  );
}
试试这个,告诉我你们在春天看到了什么

根据我的说法,最简单的方法是使用FormData对象

以下是如何:

@viewChild() fileInput: ElementRef;

onFileChange(event) {
  const files = this.fileInput.nativeElement.files as FileList;
  const file = files.item(0);

  const formData = new FormData();
  formData.append('pdf', file, file.name);
  this.http.post('abc', formData, {
    headers: new HttpHeaders().set('content-type','application/pdf')
  }).subscribe(
    data => console.log(data),
    err => console.log(err)
  );
}
试试这个,告诉我你们在春天看到了什么

试试下面的代码

HTML模板

<input type="file" id="myFile" (change)="onFileChange(fileInput.files)" #fileInput>
弹簧控制器

@RequestMapping(value="/abc", method = RequestMethod.POST) 
public ResponseGenerator uploadFile(@RequestParam MultipartFile file) {

    ResponseGenerator responseGenerator = new ResponseGenerator();

    try {

        if (file != null) {
            System.out.println(file.getOriginalFilename());
        }
        return responseGenerator;
    } catch (Exception e) {
        logger.error("Error while updating user : ", e);
        return responseGenerator;
    }
}
如果您创建一个
服务
,并将您的
http
方法
code
放入该
服务
,这将是一种更好的方法。请参阅此链接,然后尝试下面的代码

HTML模板

<input type="file" id="myFile" (change)="onFileChange(fileInput.files)" #fileInput>
弹簧控制器

@RequestMapping(value="/abc", method = RequestMethod.POST) 
public ResponseGenerator uploadFile(@RequestParam MultipartFile file) {

    ResponseGenerator responseGenerator = new ResponseGenerator();

    try {

        if (file != null) {
            System.out.println(file.getOriginalFilename());
        }
        return responseGenerator;
    } catch (Exception e) {
        logger.error("Error while updating user : ", e);
        return responseGenerator;
    }
}
如果您创建一个
服务
,并将您的
http
方法
code
放入该
服务
,这将是一种更好的方法。请参阅此链接