Trả về tập tin hình ảnh hoặc PDF với RESTEasy
Java
68
restful
10
White

vanduc1102 viết ngày 23/05/2015

Mình đang làm một RESTful server, dùng RESTEasy trên Java.

Server này sẽ lưu trữ các tập tin như hình ảnhPDF vào trong CSDL.

Yêu cầu là khi đánh các request lên trình duyệt:

@Path("media")
@Stateless
public class MediaRestService {
    private final static org.slf4j.Logger log = LoggerFactory.getLogger(MediaRestService.class);
    @EJB
    private ThumbnailServices thumbnailService;
    @EJB
    private DocumentServices docServices;


    @Path("document/{id}/thumbnail")
    @GET
    @Produces("image/jpg")
    public Response findThumbnail(@PathParam("id") String id) {
            // Read the content of file from DB.
            String base64Content = thumbnailService.getThumbnail(id);
            byte[] imageData = IOUtils.convertToBytesFromBase64(base64Content,"jpg");

           return Response.ok(new ByteArrayInputStream(imageData)).build();
    }

    @GET
    @Path("document/{id}/file")
    @Produces("application/pdf")
    public Response findDocumentPDF(@PathParam("id") String documentId) {
        byte[] bytes = null;
        // Read the content of file from DB.
        bytes = org.apache.commons.io.IOUtils.toByteArray(docServices.fileContent(documentId));

        return Response.ok(new ByteArrayInputStream(bytes)).build();
    }
}

Nguyên tắc:

  • Set header trả về là kiểu tập tin image/jpg, application/pdf ... bằng @Produces("")
  • Dữ liệu trả về dưới dạng nhị phân Response.ok(new ByteArrayInputStream(bytes)).build();

Sau đó trình duyệt sẽ tự động hiển thị tập tin.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

vanduc1102

3 bài viết.
1 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
15 3
Bài viết dịch từ : http://videlalvaro.github.io/2014/02/whyyoushouldlearnerlang.html Với tất cả các lùm xùm về việc WhatsApp bị mua lại bởi Faceb...
vanduc1102 viết hơn 2 năm trước
15 3
White
7 2
Trong AngularJS Chúng ta có thể sử dụng ngClass để kiểm tra điều kiện khi sử dụng Class trong CSS : javascript ngclass="{true:'displaybutton', ...
vanduc1102 viết gần 3 năm trước
7 2
Bài viết liên quan
White
7 5
Setup hệ thống Api với Nodejs trong 1 nốt nhạc Mục đích bài viết là sẽ giúp setup hệ thống api cơ bản, và cung cấp giao diện admin để thao tác với...
Xaolonist viết 9 tháng trước
7 5
White
3 1
Chú ý: Bài viết này trình bày chủ yếu cho CentOS 64 bit, tuy nhiên ý tưởng có thể áp dụng cho các hệ điều hành khác. Cuối bài có ghi chú cho Ubunt...
Ngoc Dao viết gần 2 năm trước
3 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
3 bài viết.
1 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!