Регистрация  |  Вход

Как вывести документ на сайтовую страницу?

Всем привет!

разбавлю последние серьезные темы данного раздела более простой и легкомысленной.

как на сайтовой странице вывести линк, при нажатии на который подгружался бы doc or pdf документ? Не открывался в новом окне, а предлагал подгрузиться.

как я понимаю это должен быть просто линк, ведущий, например, на документ лежащий в статик ресурсах.
или вместо статик ресурсов как-то можно использовать объект Документы - никогда с ним не работал, не знаю можно ли сделать документ доступным на сайте.

может у кого был опыт, если поделитесь, у меня меньше времени уйдет по поиск ответа методом "тыка".

спасибо

Всем привет!

разбавлю последние серьезные темы данного раздела более простой и легкомысленной.

как на сайтовой странице вывести линк, при нажатии на который подгружался бы doc or pdf документ? Не открывался в новом окне, а предлагал подгрузиться.

как я понимаю это должен быть просто линк, ведущий, например, на документ лежащий в статик ресурсах.
или вместо статик ресурсов как-то можно использовать объект Документы - никогда с ним не работал, не знаю можно ли сделать документ доступным на сайте.

может у кого был опыт, если поделитесь, у меня меньше времени уйдет по поиск ответа методом "тыка".

спасибо

Den Brown
Всем привет!

разбавлю последние серьезные темы данного раздела более простой и легкомысленной.

как на сайтовой странице вывести линк, при нажатии на который подгружался бы doc or pdf документ? Не открывался в новом окне, а предлагал подгрузиться.

как я понимаю это должен быть просто линк, ведущий, например, на документ лежащий в статик ресурсах.
или вместо статик ресурсов как-то можно использовать объект Документы - никогда с ним не работал, не знаю можно ли сделать документ доступным на сайте.

может у кого был опыт, если поделитесь, у меня меньше времени уйдет по поиск ответа методом "тыка".

спасибо

Это действие зависит от браузера. В хроме просто скачивает. В ФФ предлагает сохранить.

Можно в статик ресурс, нужно только выбрать Public в Cache Control
Если в документы, то нужно выбрать Externally Available Image

[quote="Den Brown"]Всем привет!

разбавлю последние серьезные темы данного раздела более простой и легкомысленной.

как на сайтовой странице вывести линк, при нажатии на который подгружался бы doc or pdf документ? Не открывался в новом окне, а предлагал подгрузиться.

как я понимаю это должен быть просто линк, ведущий, например, на документ лежащий в статик ресурсах.
или вместо статик ресурсов как-то можно использовать объект Документы - никогда с ним не работал, не знаю можно ли сделать документ доступным на сайте.

может у кого был опыт, если поделитесь, у меня меньше времени уйдет по поиск ответа методом "тыка".

спасибо[/quote]

Это действие зависит от браузера. В хроме просто скачивает. В ФФ предлагает сохранить.

Можно в статик ресурс, нужно только выбрать Public в Cache Control
Если в документы, то нужно выбрать Externally Available Image


Wilder прав, действие зависит от браузера.
Но документ я бы советовал не в статик ресурсы класть, а в Documents. На них тоже легко ссылку сформировать, но преимущество в том что можно ссылки делать динамически, с помощью SOQL запроса к Document. И да, документы доступны для скачивания на сайте.

Wilder прав, действие зависит от браузера.
Но документ я бы советовал не в статик ресурсы класть, а в Documents. На них тоже легко ссылку сформировать, но преимущество в том что можно ссылки делать динамически, с помощью SOQL запроса к Document. И да, документы доступны для скачивания на сайте.

Dmitry Shnyrev
Wilder прав, действие зависит от браузера.
Но документ я бы советовал не в статик ресурсы класть, а в Documents. На них тоже легко ссылку сформировать, но преимущество в том что можно ссылки делать динамически, с помощью SOQL запроса к Document. И да, документы доступны для скачивания на сайте.

Ну ты не прав для статик ресурса, все ровно то же самое. Только чуть больше гемороя с созданием и удалением, зато можно архивы использовать.

[quote="Dmitry Shnyrev"]Wilder прав, действие зависит от браузера.
Но документ я бы советовал не в статик ресурсы класть, а в Documents. На них тоже легко ссылку сформировать, но преимущество в том что можно ссылки делать динамически, с помощью SOQL запроса к Document. И да, документы доступны для скачивания на сайте.[/quote]

Ну ты не прав для статик ресурса, все ровно то же самое. Только чуть больше гемороя с созданием и удалением, зато можно архивы использовать.

Ну каждому свое.
По мне статик ресурсы для статик ресурсов, документы для документов.
Я просто посмотрю потом на тот процесс, когда вы будете заказчику объяснять как поменять (обновить) документ в статик ресурсах.

Ну каждому свое.
По мне статик ресурсы для статик ресурсов, документы для документов.
Я просто посмотрю потом на тот процесс, когда вы будете заказчику объяснять как поменять (обновить) документ в статик ресурсах.

Dmitry Shnyrev
Ну каждому свое.
По мне статик ресурсы для статик ресурсов, документы для документов.
Я просто посмотрю потом на тот процесс, когда вы будете заказчику объяснять как поменять (обновить) документ в статик ресурсах.

А со стороны клиента это абсолютно прозрачный процесс. Пишется контроллер для работы со статик ресурсом. Для клиента это обычный аттачмент. А где он лежит для него не важно особенно если организован удобный доступ к нему.

[quote="Dmitry Shnyrev"]Ну каждому свое.
По мне статик ресурсы для статик ресурсов, документы для документов.
Я просто посмотрю потом на тот процесс, когда вы будете заказчику объяснять как поменять (обновить) документ в статик ресурсах.[/quote]

А со стороны клиента это абсолютно прозрачный процесс. Пишется контроллер для работы со статик ресурсом. Для клиента это обычный аттачмент. А где он лежит для него не важно особенно если организован удобный доступ к нему.

Вот тут я совсем ничего понял. Какой контроллер для работы со статик ресурсом? Какой аттачмент?
Мы об одном и том же говорим? Static resource это вроде metadata а на данные. Следовательно он будет тягаться со всеми ченжсетами по всем оргам. А как клиент будет с ним работь? Через Setup->Static Resource я так понимаю? Какие еще тут могут быть контроллеры и обычные аттачменты?

Вот тут я совсем ничего понял. Какой контроллер для работы со статик ресурсом? Какой аттачмент?
Мы об одном и том же говорим? Static resource это вроде metadata а на данные. Следовательно он будет тягаться со всеми ченжсетами по всем оргам. А как клиент будет с ним работь? Через Setup->Static Resource я так понимаю? Какие еще тут могут быть контроллеры и обычные аттачменты?

Wilder, мне кажется ты все сильно усложняешь.

Wilder, мне кажется ты все сильно усложняешь.

Dmitry Shnyrev
Вот тут я совсем ничего понял. Какой контроллер для работы со статик ресурсом? Какой аттачмент?
Мы об одном и том же говорим? Static resource это вроде metadata а на данные. Следовательно он будет тягаться со всеми ченжсетами по всем оргам. А как клиент будет с ним работь? Через Setup->Static Resource я так понимаю. Какие еще тут могут быть контроллеры и обычные аттачменты?

Ок. Объясняю. Static Resource как и Documents можно получить в метадате это да. Attachment это чистая дата. Как с ними работать клиенту должно быть все равно. Например у меня в пакете есть Import/Export manager и все данные сохраняются в папке в документах. Но клиенту туда не нужно вообще ходить, потому что все происходит через UI. Поэтому я и сказал, что есть контроллер который это все делает.

Другая ситуация. Если нужно работать с зип архивами не из страницы, а из future или async jobs то приходиться использовать Static Resource, потому что салесфорс может чудесно работать с ZIP но только в Static Resource.

[quote="Dmitry Shnyrev"]Вот тут я совсем ничего понял. Какой контроллер для работы со статик ресурсом? Какой аттачмент?
Мы об одном и том же говорим? Static resource это вроде metadata а на данные. Следовательно он будет тягаться со всеми ченжсетами по всем оргам. А как клиент будет с ним работь? Через Setup->Static Resource я так понимаю. Какие еще тут могут быть контроллеры и обычные аттачменты?[/quote]

Ок. Объясняю. Static Resource как и Documents можно получить в метадате это да. Attachment это чистая дата. Как с ними работать клиенту должно быть все равно. Например у меня в пакете есть Import/Export manager и все данные сохраняются в папке в документах. Но клиенту туда не нужно вообще ходить, потому что все происходит через UI. Поэтому я и сказал, что есть контроллер который это все делает. 

Другая ситуация. Если нужно работать с зип архивами не из страницы, а из future или async jobs то приходиться использовать Static Resource, потому что салесфорс может чудесно работать с ZIP но только в Static Resource.

wilder
апример у меня в пакете есть Import/Export manager и все данные сохраняются в папке в документах. Но клиенту туда не нужно вообще ходить, потому что все происходит через UI. Поэтому я и сказал, что есть контроллер который это все делает.

Я же говорю, wilder, ты все только усложняешь. У тебя есть свой пакет, с UI для клиента. Это здорово. Но у других его нет.
А den спрашивал про
Den Brown
как на сайтовой странице вывести линк, при нажатии на который подгружался бы doc or pdf документ?

Я думаю тут проще сделать так:
"Дорогой и многоуважаемый клиент, зайдите в Documents и загрузите ваш документ с таким-то именем в документы". Клиент идет в Документы (хорошо знакомый ему инструмент, потому что я думаю клиенты не раз пользовались документами в Salesforce)и загружает туда документ.
А мы в контролере делаем SOQL запрос к документу c нужным именем и если он существует, то показываем ссылку.
ВСЕ! ПРОФИТ.
И не нужны никакие кастомные контроллеры с UI которые кладут документы непонятно куда и чтобы мы потом непонятно откуда с помощью другого контроллера доставали.

[quote="wilder"]апример у меня в пакете есть Import/Export manager и все данные сохраняются в папке в документах. Но клиенту туда не нужно вообще ходить, потому что все происходит через UI. Поэтому я и сказал, что есть контроллер который это все делает.[/quote]
Я же говорю, wilder, ты все только усложняешь. У тебя есть свой пакет, с UI для клиента. Это здорово. Но у других его нет.
А den спрашивал про
[quote="Den Brown"]как на сайтовой странице вывести линк, при нажатии на который подгружался бы doc or pdf документ?[/quote]
Я думаю тут проще сделать так:
"Дорогой и многоуважаемый клиент, зайдите в Documents и загрузите ваш документ с таким-то именем в документы". Клиент идет в Документы (хорошо знакомый ему инструмент, потому что я думаю клиенты не раз пользовались документами в Salesforce)и загружает туда документ.
А мы в контролере делаем SOQL запрос к документу c нужным именем и если он существует, то показываем ссылку.
ВСЕ! ПРОФИТ.
И не нужны никакие кастомные контроллеры с UI которые кладут документы непонятно куда и чтобы мы потом непонятно откуда с помощью другого контроллера доставали.

вывод такой:

для простых, прямолинейных проектов - документы для документов, стат ресурсы - для технических вещей, далеких от пользователей.

но wilder знает как и выжимает из возможностей СФ все до капли, что может быть важно и просто необходимо для приложений-Пакетов, со всех сторон обложенных лимитами.

вывод такой:

для простых, прямолинейных проектов - документы для документов, стат ресурсы - для технических вещей, далеких от пользователей.

но wilder знает как и выжимает из возможностей СФ все до капли, что может быть важно и просто необходимо для приложений-Пакетов, со всех сторон обложенных лимитами.

продолжу раскрытие темы:

для выведение дока на сайт страницу я использовал <apex:outputLink>

но как сделать, чтобы один и тот же аттрибут value одинаково хорошо работал как внутри орга, так и на сайте?

идеальным вариантом кажется такой:
<apex:outputLink value="/servlet/servlet.FileDownload?file=00000000000000" >Title</apex:outputLink>

но дело в том, что в таком случае при клике на сайтовой ссылке к базовому УРЛ прибавляется сайтовый путь, и сервлет не работает:
baseURL/Home/servlet/servlet.FileDownload?file=00000000000000

пока пришлось захардкодить полный сайтовый путь в value, что очень плохо, так как реальный сайтовый урл будет другим, плюс эта ссылка внутри орга работает с\до тех пор пока активирован сайт.

спасибо

продолжу раскрытие темы:

для выведение дока на сайт страницу я использовал <apex:outputLink>

но как сделать, чтобы один и тот же аттрибут value одинаково хорошо работал как внутри орга, так и на сайте?

идеальным вариантом кажется такой:
<apex:outputLink value="/servlet/servlet.FileDownload?file=00000000000000" >Title</apex:outputLink>

но дело в том, что в таком случае при клике на [u]сайтовой[/u] ссылке к базовому УРЛ прибавляется сайтовый путь, и сервлет не работает:
baseURL/[b]Home[/b]/servlet/servlet.FileDownload?file=00000000000000

пока пришлось захардкодить полный сайтовый путь  в value, что очень плохо, так как реальный сайтовый урл будет другим, плюс эта ссылка внутри орга работает с\до тех пор пока активирован сайт.

спасибо

не совсем в тему, но где то рядом.
вот только что обратил внимание, что

для картинки урл в разметке пишем так:

<apex:image url="{!URLFOR($Resource.MyPic)}" />

а для стиля пишем так:

background: url({!$Resource.MyPic}) repeat-x #663300;

не совсем в тему, но где то рядом.
вот только что обратил внимание, что

для картинки урл в разметке пишем так:
[code]<apex:image url="{!URLFOR($Resource.MyPic)}" />[/code]

а для стиля пишем так:
[code]background: url({!$Resource.MyPic}) repeat-x #663300;[/code]

а вот в формуле к стат ресурсу можно обратиться без URLFOR():

<img src="{!If(Contains(Object__c.Field__c, 'some text'),$Resource.CheckBoxChecked,$Resource.CheckBoxUnchecked)}"/>

да и просто в картинке оказывается тоже можно:

<apex:image url="{!$Resource.MyPic}" />

а вот в формуле к стат ресурсу можно обратиться без URLFOR():
[code]<img src="{!If(Contains(Object__c.Field__c, 'some text'),$Resource.CheckBoxChecked,$Resource.CheckBoxUnchecked)}"/>[/code]

да и просто в картинке оказывается тоже можно:
[code]<apex:image url="{!$Resource.MyPic}" />[/code]