загрузить изображение в базу данных с помощью jersey rest api in postman? - PullRequest
0 голосов
/ 20 февраля 2019

Я работаю над проектом, в котором необходимо создать оставшийся 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();
    }
}

1 Ответ

0 голосов
/ 20 февраля 2019

Вы не указали, какую базу данных вы используете, так что просто с точки зрения невесты.

Изображение может быть представлено как этот класс:

@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 
}

, где данные являются входным потоком, преобразованным в байты []

Так что вам нужно просто создать новое изображение, заполнить его даннымии сохранить в базе данных, как и любой другой объект

...