Сохранить как PDF в IE не сохраняется с тем же именем, что и имя файла [duplicate]

В приведенном ниже примере показано, как читать текст в вопросе, представленный как переменная jsonText. Это решение использует API Java EE7 javax.json (о чем упоминается в некоторых других ответах). Причина, по которой я добавил его в качестве отдельного ответа, состоит в том, что следующий код показывает, как фактически получает доступ к некоторым значениям, указанным в вопросе. Для выполнения этого кода потребуется реализация javax.json API . Полный пакет для каждого из необходимых классов был включен, так как я не хотел объявлять «импортные» операторы.

javax.json.JsonReader jr = 
    javax.json.Json.createReader(new StringReader(jsonText));
javax.json.JsonObject jo = jr.readObject();

//Read the page info.
javax.json.JsonObject pageInfo = jo.getJsonObject("pageInfo");
System.out.println(pageInfo.getString("pageName"));

//Read the posts.
javax.json.JsonArray posts = jo.getJsonArray("posts");
//Read the first post.
javax.json.JsonObject post = posts.getJsonObject(0);
//Read the post_id field.
String postId = post.getString("post_id");

Теперь, прежде чем кто-либо пойдет и опустит этот ответ, потому что он не использует GSON , org.json, Jackson или любой из других сторонних фреймворков, это пример «требуемого кода» на вопрос для анализа предоставленного текста. Мне хорошо известно, что соблюдение существующего стандарта JSR 353 не рассматривалось для JDK 9 , и поэтому JSR 353 spec следует рассматривать так же, как и любая другая сторонняя сторона JSON.

13
задан Simon Adcock 9 March 2014 в 18:25
поделиться

3 ответа

См. тестовые примеры в http://greenbytes.de/tech/tc2231/#inlwithasciifilenamepdf - кажется, что это просто недостающая функция в IE.

12
ответ дан Julian Reschke 27 August 2018 в 07:30
поделиться

В случае INLINE кажется, что Internet explorer использует последний параметр в URL для создания имени файла. Например, если ваш URL-адрес http://doc.com/131231231 IE предложит вам сохранить файл как 131231231.pdf Если вам нужно имя файла, например foo_131231231.pdf, вы можете взломать IE используя этот url: http://doc.com/foo_131231231 Возможно, вам придется немного изменить свое приложение, чтобы ожидать такой уродливый параметр, но в конце ваше приложение будет работать так, как вы ожидаете.

3
ответ дан LyuboBG 27 August 2018 в 07:30
поделиться

Я также столкнулся с этой проблемой. То, что помогло мне, было также установить для contenttype значение application/pdf (вместо устаревшего application/x-pdf)

response.setContentType("application/pdf");
response.setHeader("Content-disposition", "inline; filename=\"Report.pdf\"");
2
ответ дан zeisi 27 August 2018 в 07:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: