Trả về tập tin hình ảnh hoặc PDF với RESTEasy
Java
77
restful
12
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 3 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 3 năm trước
7 2
Bài viết liên quan
White
0 0
Trong bài viết này, một số hình ảnh hoặc nọi dung có thể bị thiếu do quá trình chế bản. Vui lòng xem nội dung ở blog gốc sau: (Link) (Link), chúng...
programmerit viết gần 3 năm trước
0 0
Male avatar
9 5
Facade Design Patern Facade Patern thuộc vào họ mô hình cấu trúc (structural patern). Facade patern phát biểu rằng : "just provide a unified an...
DuongVanTien viết gần 2 năm trước
9 5
{{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á!