Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
Java Spring数据Rest:如何发送包含请求正文的多部分文件_Java_Json_Spring_Rest_Multipartform Data - Fatal编程技术网

Java Spring数据Rest:如何发送包含请求正文的多部分文件

Java Spring数据Rest:如何发送包含请求正文的多部分文件,java,json,spring,rest,multipartform-data,Java,Json,Spring,Rest,Multipartform Data,我想建立一个API的用户注册,其中我需要用户的基本信息和他/她的个人资料图片,所以我很困惑,我如何才能做到这一点!我制作了一个控制器并请求了一个主体,但当我访问此API时,它给出了一个错误“不支持的媒体类型”,当我将内容类型设置为多部分/表单数据时,它给出了一个错误: 请求被拒绝,因为未找到多部分边界 请帮助我如何在同一请求中发送用户信息和用户照片 更新:控制器 @RequestMapping(method = RequestMethod.POST, value = "createRider")

我想建立一个API的用户注册,其中我需要用户的基本信息和他/她的个人资料图片,所以我很困惑,我如何才能做到这一点!我制作了一个控制器并请求了一个主体,但当我访问此API时,它给出了一个错误
“不支持的媒体类型”
,当我将内容类型设置为
多部分/表单数据时,它给出了一个错误:
请求被拒绝,因为未找到多部分边界

请帮助我如何在同一请求中发送用户信息和用户照片

更新:控制器

@RequestMapping(method = RequestMethod.POST, value = "createRider")
public @ResponseBody ResponseEntity<?> createRider(
        @RequestBody CreateRider createRider,Authentication authentication,
        PersistentEntityResourceAssembler assembler,@RequestPart(value = "profilePic", required = false) MultipartFile file) {

    if (authentication != null && authentication.getPrincipal() != null) {
        Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
        boolean authorized = authorities.contains(new SimpleGrantedAuthority("rights"));
        if (authorized==true)
            userService.createNewRider(createRider);
        else
            return  ResponseEntity.status(HttpStatus.SC_CONFLICT).body("Logged In user is not admin");
    } else {
        // Access denied
        throw new AccessDeniedException("Not logged in");
    }
    return ResponseEntity.ok("Rider Created");
}
public void createNewRider(CreateRider createRider) {
        Group group=groupRepo.findOne(Constants.RIDER_USER_GROUP);
        User user=new User();
        user.setGroup(group);
        user.setEmail(createRider.getEmail());
        user.setName(createRider.getName());
        user.setPassword(createRider.getPassword());
        user.setContactNumber(createRider.getContactNumber());
        user.setCnicNumber(createRider.getCnicNumber());
        user.setDrivingLicense(createRider.getDrivingLicense());
        user.setReference(createRider.getReference());
        userRepo.save(user);
        RiderLocation riderLocation=new RiderLocation();
        riderLocation.setRider(user);
        riderLocationRepo.save(riderLocation);
        ///User Photo 
         UserPhoto userPhoto=photoService.createUserPhoto(createRider.getFile(), user.getId());
         userPhotoRepo.save(userPhoto);



    }
userService.createNewRider

@RequestMapping(method = RequestMethod.POST, value = "createRider")
public @ResponseBody ResponseEntity<?> createRider(
        @RequestBody CreateRider createRider,Authentication authentication,
        PersistentEntityResourceAssembler assembler,@RequestPart(value = "profilePic", required = false) MultipartFile file) {

    if (authentication != null && authentication.getPrincipal() != null) {
        Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
        boolean authorized = authorities.contains(new SimpleGrantedAuthority("rights"));
        if (authorized==true)
            userService.createNewRider(createRider);
        else
            return  ResponseEntity.status(HttpStatus.SC_CONFLICT).body("Logged In user is not admin");
    } else {
        // Access denied
        throw new AccessDeniedException("Not logged in");
    }
    return ResponseEntity.ok("Rider Created");
}
public void createNewRider(CreateRider createRider) {
        Group group=groupRepo.findOne(Constants.RIDER_USER_GROUP);
        User user=new User();
        user.setGroup(group);
        user.setEmail(createRider.getEmail());
        user.setName(createRider.getName());
        user.setPassword(createRider.getPassword());
        user.setContactNumber(createRider.getContactNumber());
        user.setCnicNumber(createRider.getCnicNumber());
        user.setDrivingLicense(createRider.getDrivingLicense());
        user.setReference(createRider.getReference());
        userRepo.save(user);
        RiderLocation riderLocation=new RiderLocation();
        riderLocation.setRider(user);
        riderLocationRepo.save(riderLocation);
        ///User Photo 
         UserPhoto userPhoto=photoService.createUserPhoto(createRider.getFile(), user.getId());
         userPhotoRepo.save(userPhoto);



    }

通过将以下内容添加到控制器中,可以将配置文件图片作为

@RequestPart(value=“profilePic”,required=false)多部分文件profilePic

因此,控制器方法变得更加简单

import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;

@RequestMapping(method = RequestMethod.POST, value = "createRider")
public @ResponseBody ResponseEntity<?> createRider(
        @RequestPart CreateRider createRider,Authentication authentication,
        PersistentEntityResourceAssembler assembler, @RequestPart(value = "profilePic", required = false)  MultipartFile profilePic) {

}
import org.springframework.web.bind.annotation.RequestPart;
导入org.springframework.web.multipart.MultipartFile;
@RequestMapping(method=RequestMethod.POST,value=“createRider”)
public@ResponseBody ResponseEntity createRider(
@RequestPart CreateRider CreateRider,身份验证,
PersistentEntityResourcesAssembler汇编程序,@RequestPart(value=“profilePic”,required=false)多部分文件profilePic){
}

那么requestBody createRider呢?
@requestBody createRider createRider
我还需要其他信息名称、密码等,您可以使用@RequestPart加载这些信息,如回答中所述。好的,等等,让我试试如何从邮递员发送数据?内容类型应该是什么?如果你已经解决了,请分享你的解决方案