Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 10.09.2020, 16:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от slan
"_blank"
Это то зачем в окне, если это и будет новым окном? Там должны быть имя и параметры окна.
Ответить с цитированием
  #22 (permalink)  
Старый 10.09.2020, 16:55
Интересующийся
Отправить личное сообщение для slan Посмотреть профиль Найти все сообщения от slan
 
Регистрация: 14.11.2012
Сообщений: 12

Пробовал ставить туда разные значения, изменений не было.
Ответить с цитированием
  #23 (permalink)  
Старый 10.09.2020, 17:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от slan
ставить туда разные значения
Если вы хотите вкладку, значит достаточно только первого параметра, а если окно, то нужно указать его параметры.
Ответить с цитированием
  #24 (permalink)  
Старый 10.09.2020, 18:15
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от slan
Положил на сервер готовый файл 1.pdf.
сделал в скрипте вот так:
header("Content-Type: application/pdf; name=\"1.pdf\"");
  header("Content-Disposition: inline; filename=\"1.pdf\"");
  readfile("../1.pdf");

Результат тот же самый. 5 секунд скачивается pdf, после хром предлагает скачать сам скрипт.
Провел эксперимент
Положил на сервер
HTML

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8" lang="ru">
  <meta name="viewport" content="width=device-width, initial-scale=1.0" >
  <title>TESTE </title>
</head>

<body>

<button id='gpdf'>Load pdf</button>

<script>
document.getElementById('gpdf').addEventListener('click', ()=> {
window.open('gpdf.php','fpdf')
})
</script>
</body>
</html>


Вот такой gpdf.php

<?php
header("Content-Type: application/pdf; name=\"file.pdf\"");
header("Content-Disposition: inline; filename=\"file.pdf\"");
readfile("file.pdf");
?>

и какой то file.pdf

Все в хроме нормально работает. В новой вкладке открывается pdf.
Сохраняется, как pdf хоть через 5 сек, хоть через 50
Ответить с цитированием
  #25 (permalink)  
Старый 10.09.2020, 18:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от voraa
header("Content-Type: application/pdf; name=\"file.pdf\"");
Зачем в типе передавать имя, оно там совсем не нужно.
Ответить с цитированием
  #26 (permalink)  
Старый 10.09.2020, 18:42
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от laimas
Зачем в типе передавать имя, оно там совсем не нужно.
Просто взял код приведенный автором
Ответить с цитированием
  #27 (permalink)  
Старый 11.09.2020, 10:51
Интересующийся
Отправить личное сообщение для slan Посмотреть профиль Найти все сообщения от slan
 
Регистрация: 14.11.2012
Сообщений: 12

Всем спасибо за помощь. На другом сервере (nginx) всё отработало как надо.
Проблемы возникают на apache, в нём присутствует в Response Headers заголовок Keep-Alive: timeout=5, max=100. Вот эти 5 секунд.
Если в скрипте написать вот так:
header("Connection: close");

то файл не скачивается из просмотрщика прямо сразу, предлагает скачать скрипт.
Ответить с цитированием
  #28 (permalink)  
Старый 11.09.2020, 11:51
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от slan
Если в скрипте написать вот так:
header("Connection: close");

то файл не скачивается из просмотрщика прямо сразу, предлагает скачать скрипт.
Опять провел тест на своем сервере.
Поставил в скрипт указанный заголовок
Все равно приходит и скачивается pdf. Хоть через 5 сек, хоть через 50.

Вот, что имеем в сети

General

Request URL: http://localhost/teste/xtests/testpdf1/gpdf.php
Request Method: GET
Status Code: 200 OK
Remote Address: 127.0.0.1:80
Referrer Policy: no-referrer-when-downgrade

Response Headers

Connection: close
Content-Disposition: inline; filename="file.pdf"
Content-Type: application/pdf; name="file.pdf"
Date: Fri, 11 Sep 2020 08:58:01 GMT
Server: Apache
Transfer-Encoding: chunked

Request Headers

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache
Connection: keep-alive
DNT: 1
Host: localhost
Pragma: no-cache
Referer: http://localhost/teste/xtests/testpdf1/indexa.html
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не воспроизводится mp3 файл в Chrome прописанный в html файле. III (X)HTML/CSS 3 20.02.2020 18:42
Как сохранить произвольный файл в веб-хранилище (localstorage)? ice99 Общие вопросы Javascript 2 05.01.2018 09:26
Перейти на страницу и сохранить файл Гробовщик Общие вопросы Javascript 2 26.04.2017 18:39
Как правильно сохранить загруженный файл? 2chan Node.JS 10 03.04.2016 23:11
Pdf файл тег embed переход на страницу sparrow Общие вопросы Javascript 4 20.01.2015 12:26