java - 使用 jax-rs 使用 jquery 下载 pdf

标签 java javascript jquery pdf jax-rs

我将尝试使用 jquery 和 jax-rs 下载 pdf 文件。 pdf 文件将动态创建。

出于测试目的,我刚刚设置了一个本地 pdf 文件。我需要解析一些参数以稍后生成pdf。我将这些参数发布到服务器,服务器发回一个 pdf 文件。现在我可以在 JS 端做什么才能最终看到下载窗口?

Java 端:

@Path("/chatexport/") 公共(public)类 ChatExportController {

private static final String FILE_PATH = "c:\\own\\test.pdf";

@POST
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces("application/pdf")
public Response getFile(List<ChatMessage> chatMessageList) {
    File file = new File(FILE_PATH);

    ResponseBuilder response = Response.ok((Object) file);
    response.header("Content-Disposition",
            "attachment; filename=new-android-book.pdf");
    return response.build();

}

Javascript 端:

$.ajax({
        type: "POST",
        url: EXPORT_URL,
        contentType: "application/json",
        data: JSON.stringify([{authorId:"1",timestamp:123,content:"Test123"}]),
        dataType: "application/pdf",
        success: function (json, status) {
            if (status != "success") {
                console.log("Error loading data");
                return;
            }
            console.log("Data loaded!");
        },
        error: function (result, status, err) {
            console.log("Error loading data", err);
            return;
        }
    });

抛出的错误回调中的 err 对象表示: 没有从文本到 application/pdf 的转换

最佳答案

对于类似的问题,我使用了这种技术:当点击下载按钮时(或者触发下载事件时),在页面内创建一个不可见的 iframe,并将 iframe 的来源设置为 PDF URL。您还应该保留此技术的 Content-Disposition header 。文件会自动下载。

关于java - 使用 jax-rs 使用 jquery 下载 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23130499/

相关文章:

java - 如何减少数据库连接失败的挂起时间

java - Sonarqube 说 : A "NullPointerException" could be thrown; "getFolderPath()" can return null

java - 无法使用 jackson API 将 json 字符串映射到 java 对象

JQuery 变量中的 PHP?

javascript - 如何将 JS 文件与 dotnetnuke 中的模块、控件和模板链接起来?

java - hadoop NoClassDefFoundError 尽管 DistributedCache 设置

javascript - 从 url 下载文件 - Javascript ajax

Javascript RegExp 匹配用户 ID 模式

javascript - 使用鼠标单击获取 X/Y 坐标

javascript - Javascript 中的 iOS 滑动删除按钮?