Hibernate 在postman中使用jersey rest api将图像上载到数据库?

Hibernate 在postman中使用jersey rest api将图像上载到数据库?,hibernate,rest,api,java-8,jetty,Hibernate,Rest,Api,Java 8,Jetty,我正在做一个项目,需要创建rest API将文件/图像上传到数据库中。我尝试过将图像上传到本地系统的API。但我不明白如何将数据发送到数据库中。有人能帮我使用API吗。提前谢谢 @POST @Path("/Fileupload") @Consumes(MediaType.MULTIPART_FORM_DATA) public Response Upload(@FormDataParam("file") InputStream uploadedInputStream,

我正在做一个项目,需要创建rest API将文件/图像上传到数据库中。我尝试过将图像上传到本地系统的API。但我不明白如何将数据发送到数据库中。有人能帮我使用API吗。提前谢谢

@POST
@Path("/Fileupload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response Upload(@FormDataParam("file") InputStream uploadedInputStream,
                        @FormDataParam("file") FormDataContentDisposition fileDetail) {      

    return Response.ok(saveFile(uploadedInputStream, fileDetail)).type(MediaType.TEXT_PLAIN_TYPE).build();
}

private String saveFile(InputStream uploadedInputStream, FormDataContentDisposition fileDetail) {
   final String UPLOAD_FOLDER="D://UploadedFiles/";
    String filelocation = UPLOAD_FOLDER + fileDetail.getFileName();
    File file = new File(filelocation);

    try {
        createFolderIfNotExists(UPLOAD_FOLDER);
    } catch (Exception e){
        Response.status(Response.Status.BAD_REQUEST).entity("could not create Folder").type(MediaType.TEXT_PLAIN_TYPE).build();
    }
    try {

        Files.copy(uploadedInputStream,file.toPath(),StandardCopyOption.REPLACE_EXISTING);
        return "file copied to "+filelocation;
    } catch (IOException e) {
        e.printStackTrace();
        return "file did not copied";
    }
}
private void createFolderIfNotExists(String dirName)
        throws SecurityException {
    File theDir = new File(dirName);
    if (!theDir.exists()) {
        theDir.mkdir();
    }
}

您没有指定要使用的数据库,所以仅从bride的角度来看

图像可以像这样表示:

@Entity
public class Image {

    @Id
    private Long id;

    @Column( name = "mime_type" )
    private String mimeType;

    private String name;

    @Column( name = "data" )
    @Lob
    private byte[] data;

    //getters and setters 
}
其中数据被inputstream转换为字节[]


所以,您只需创建新图像,用数据填充它,并像任何其他实体一样存储到数据库中

您并没有指定要使用的数据库,所以仅从bride的角度来看

图像可以像这样表示:

@Entity
public class Image {

    @Id
    private Long id;

    @Column( name = "mime_type" )
    private String mimeType;

    private String name;

    @Column( name = "data" )
    @Lob
    private byte[] data;

    //getters and setters 
}
其中数据被inputstream转换为字节[]

所以您只需要创建新的图像,用数据填充它,并像其他实体一样存储到数据库中