Перейти к содержимому


Открыть файл .pdf из КБ в браузере на просмотр


Сообщений в теме: 6

#1 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 13 Июнь 2016 - 18:07

Добрый день.
Написал представление. В нем, помимо прочего, выводятся имена файлов из определенной таблицы КБ.
Хочу, чтобы при нажатии на имя файла он открывался в новом окне на просмотр (именно открывался, а не скачивался).
Для этого использую команду JS
window.open("Путь")
. "Путь" получаю через get_file_path. Но столкнулся со следующими вопросами.
1. Команда window.open() почему-то не воспринимает url к локальным файлам (у меня локальная версия) типа file:///C:/Program Files/MSTL/ClientBase/www/...
Может кто из программистов подскажет в чем дело? Подозреваю, что это связано с настойками браузера.
2. Пробовал url задавать вида http://localhost:7558/files/... Так работает, НО НЕ с папкой "files". Браузер пишет, что к папке нет доступа.
С другими папками работает нормально (пробовал /temp и /include). Можно ли обойти это ограничение?.
Можно, конечно, копировать файл в какую-то временную папку, оттуда открывать его на просмотр, а потом удалять. Но хочется сделать без этих лишних действий.

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 15 Июнь 2016 - 10:38

1. А если в браузере набираете тот же локальный адрес, то нормально открывается? Если да, то честно говоря сам не знаю наверняка, но возможно связано с политикой безопасности JS.
2. Так и должно быть, доступ к папке files должен быть закрыт, т.к. иначе ЛЮБОЙ пользователь сможет получить доступ к ЛЮБЫМ файлам, даже без авторизации в программе. Это была бы громадная дыра в безопасности. Тем не менее можно попробовать обойтись без копирования, открывая файл через адрес http://localhost:755...file=aaa&show=1 , где 111 - id поля, 222 - id строки, aaa - имя файла. В этом случае учитываются права доступа, да и get_file_path не нужен. По сути это тот же адрес что и при стандартной скачке, только с добавлением параметра show=1, который пробует открыть файл вместо его скачивания.

#3 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 15 Июнь 2016 - 14:36

1. Если в браузере открывать, то нормально открывается.
2. Отлично. Все работает. Спасибо.

PS/ Конечно, не хватает этой информации по таким дополнительным возможностям КБ, с описанием параметров, функций и т.п.
Кучу времени убил на открывание файлов, а тут оказывается готовое простое решение есть. Хотя этот вариант с самого начала попробовал, но он только скачивал файлы, про параметр show=1 не знал.

#4 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 15 Июнь 2016 - 15:12

Возник другой вопрос.

Просмотр сообщенияCbCoder (15 Июнь 2016 - 10:38) писал:

В этом случае учитываются права доступа,
Убрал в одной группе все права доступа к полю типа "файл". Захожу под пользователем из этой группы. В таблицах действительно это поле скрыто.
Но через http://localhost:755...file=aaa&show=1 этот файл спокойно открывается. И через вычисление (data_update) могу добавить файл в это поле.

#5 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 15 Июнь 2016 - 15:37

Цитата

Убрал в одной группе все права доступа к полю типа "файл". Но через http://localhost:755...file=aaa&show=1 этот файл спокойно открывается.

Права на экспорт тоже убраны? Если "да", значит баг, отправьте заявку.

Цитата

И через вычисление (data_update) могу добавить файл в это поле

На вычисления права никак не влияют. Подразумевается что они выполняются от имени системы, у которой полные права на все.

#6 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 22 Июнь 2016 - 14:17

Добрый ден.
Открываю файл на просмотр через http://localhost:755...file=aaa&show=1
Насколько я понимаю, какие именно файлы будут открываться (с каким расширением) зависит от браузера.
Я работаю Яндексе. По описанию он может открывать pdf, doc, jpeg. Ексель открывать не может.
Если пытаюсь открыть .xlsx, то он действительно не открывается на просмотр и предлагается его скачать.
Если открываю .xls, то файл открывается на просмотр, но с иероглифами. Прикрепленное изображение: 11.jpg
Подскажите направление, может с кодировками что-то не так? Может какой-то параметр еще есть, типа show=1

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 23 Июнь 2016 - 09:30

Возможно браузер или скрипт просто не понимают что это файл документа приложения, а думают что это простой текст. Т.к. тут явно не электронная таблица по виду. Да и не помню чтобы браузеры (разве что IE при наличии установленного MS Ofiice) открывали файлы электронных таблиц. А т.к. считает за текст, то и скачать не предлагает.

Цитата

Может какой-то параметр еще есть, типа show=1

Нет, это весь набор параметров.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных