Hibernate 在postman中使用jersey rest api将图像上载到数据库?
我正在做一个项目,需要创建rest API将文件/图像上传到数据库中。我尝试过将图像上传到本地系统的API。但我不明白如何将数据发送到数据库中。有人能帮我使用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,
@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转换为字节[]
所以您只需要创建新的图像,用数据填充它,并像其他实体一样存储到数据库中