Управление загрузкой файлов xpages - открыть вместо сохранения?

Когда вы щелкаете ссылку на вложение в элементе управления загрузкой файлов в XPiNC, вам предлагается сохранить вложение. Можно ли настроить элемент управления загрузкой файлов, чтобы открывать вложение напрямую, а не предлагать пользователю сохранить его? Мы используем 8.5.2 FP3.


person Michael Sobczak    schedule 05.09.2013    source источник
comment
возможный дубликат Xpages Download control для клиентской стороны   -  person Naveen    schedule 05.09.2013
comment
Решение Шона умное, но не полное. Спасибо, что направили меня туда.   -  person Michael Sobczak    schedule 05.09.2013


Ответы (2)


Обработка «вложения» в основном выполняется браузером (XPiNC является браузером Firefox внутри Notes). Если, например, в браузере установлен подключаемый модуль PDF, и серверы отправляют соответствующий MIME-тип «application/pdf» с файлом, браузер использует этот подключаемый модуль для отображения файла. Корреляция между MIME-типом и плагином или внешним приложением в браузере — это то, на что сервер/веб-приложение не может повлиять.

Что вы можете сделать на стороне сервера, так это отправить «application/octet-stream» типа mime вместо того, который соответствует типу файла, в результате чего браузер отобразит диалоговое окно «Выберите приложение или загрузку». Таким образом, в Xpages вам придется перенаправить загрузку через XPage, где вы установите соответствующие заголовки HTTP, как показано в Установить заголовки кеша на XPage и Как заставить файлы PDF открываться в браузере?

person leyrer    schedule 05.09.2013
comment
проблема связана с XPiNC, а не с XPages в обычном веб-браузере. - person Michael Sobczak; 08.09.2013

Я не использовал элемент управления загрузкой файлов или XPINC, но определенно возможно сделать так, чтобы ваш элемент управления xpage или view открывал вложение напрямую. Этот метод обходит контроль загрузки.

См. этот пост Стефана Висселя: http://www.wissel.net/blog/d6plinks/SHWL-86QKNM, что дает вам некоторые SSJS, которые вы можете использовать для создания URL-адреса. Вы можете использовать его в методе onClick кнопки. По сути, вы дублируете функциональность элемента управления загрузкой таким образом, чтобы он делал то, что вы хотите.

Если вы хотите сделать то же самое из элемента управления представлением, см. этот пост: http://notesspeak.blogspot.com/2013/02/how-to-launch-attachment-from-view.html

Обратите внимание, что разные браузеры ведут себя немного по-разному, но это работает во всех основных.


Михаил, Вот код, который я использовал:

    var unid = rowValue.getUniversalID()
    var url = getAttachmentURL(unid, "storetransfer.pdf", "Testing//test.nsf")
    url = "/" + url + ";"
    view.postScript("window.open('" + url + "', '_blank', 'height=120,width=650,top=10,left=10,resizable=yes');");

Я немного изменил код Стефана, так как мои данные находятся в другом NSF, чем мой код. Вы, наверное, знаете это, но view.postScript позволяет вам вызывать javascript на стороне клиента из SSJS. Это всегда последнее, что нужно запустить, отсюда и название. Это тот же код из видео Notesin9, упомянутого в комментариях. Я только что проверил это, и это работает так, как я думаю, вы хотите, но в firefox он пытается заблокировать всплывающее окно, а затем должен нажать «открыть». Надеюсь это поможет.

person Steve Zavocki    schedule 05.09.2013
comment
Я попробую решение Стефана. Кажется немного неуклюжим иметь элемент управления загрузкой файлов для сохранения вложений и что-то еще, чтобы просто открывать их. Ну, это Notes, я думаю! - person Michael Sobczak; 05.09.2013
comment
Дайте мне знать, если у вас есть какие-либо вопросы по этому поводу, это то, с чем у меня достаточно опыта. Особенность Notes в том, что всегда есть около 3 способов сделать одно и то же. - person Steve Zavocki; 05.09.2013
comment
Элемент управления File-Download не сохраняет вложения :-) Элемент управления File Upload сохраняет. Как это нелепо! Почти как HTML: тип ввода = файл на html-странице, но ничего, кроме URL-адреса, указывающего на загруженные файлы. Подождите -- это это HTML - person stwissel; 06.09.2013
comment
Это решение не работает с 8.5.2 FP3. Код Стефана создает следующий URL-адрес, который, когда я нажимаю на него, по-прежнему вызывает окно «Сохранить как» для сохранения вложения. Я что-то упустил, чтобы заставить это работать? ‹a href=/xsp/~Databases\DEVInvoiceApproval.nsf/xsp/.ibmmodres/domino/OpenAttachment/~Databases\DEVInvoiceApproval.nsf/BE900EA40FF411CA85257BCC007DA658/Attachments/uhc_mailOrderForm.pdf?Open›uhc_mailOrderForm.pdf‹/a› - person Michael Sobczak; 06.09.2013
comment
Позвольте мне взглянуть на мой старый код и посмотреть, могу ли я помочь. В марте прошлого года я сделал заметки в 9, которые могут быть полезны: view-control/" rel="nofollow noreferrer">notesin9.com/index.php/2013/04/10/ Забавно, что пользователи изменили свое мнение о вложениях, поэтому удалили все эти функции. Мне нужно откопать код, который я использовал в видео, и посмотреть, смогу ли я найти проблему. - person Steve Zavocki; 06.09.2013
comment
@SteveZavocki решение, которое вы описываете в своем подкасте Notes in 9, и ваш веб-сайт предназначен только для веб-браузера. Мне нужно что-то, что будет работать так же в XPiNC. Спасибо, что отозвались. Я продолжу искать решение. - person Michael Sobczak; 07.09.2013