Добавить файл в Веб

Тема в разделе "Lotus - Программирование", создана пользователем wowa, 10 апр 2008.

  1. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Подскажите , может у кого есть пример.....
    В лотусе реализовано так... нажимаю на кнопку "Добавить", выбираю файл, выбранный файл заносится в RTF..
    Как это правильно сделать в Веб? Чтобы потом при открытии в лотусе этого документа все было Ок.???

    Нашел что в веб, добавление делается типа так:
    Код (Text):
    <input type="file" name="attachment" size="40">
     
  2. Sandr

    Sandr Гость

    File Upload Control

    почитайте о нем...
     
  3. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Sandr , если не сложно, можно в кратце своими словами?
     
  4. KLif

    KLif Гость

    Хм ... можно наверно так:
    1. Каждый раз при добавлении нового файла, его параметры (путь, имя) сохранять в отдельном поле (скрытом), через какой нить символ ... в итоге у тебя будет текстовое поле со всеми прикрепленными файлами -> Имя#Путь~Имя#Путь~Имя#Путь : вот как нить так выглядеть будет
    2. Если нужно чтобы эти файлы потом отображались в веб при открытии этого дока, то пишешь агента или js функцию, которая разбирает этот поле (split) и пробегая по всем его элементам автоматически прикрепляет все файлы
    3. То же самое и в лотусе, на опен формы пишешь разбор твоего поля и программно атачишь файлы ...

    Вроде такое должно работать ...
     
  5. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    KLif , ну вот я тоже так думал... или создавать какой-то отдельный документ (но это еще не продумывал)
     
  6. Sandr

    Sandr Гость

    File Upload Control - это эмбедет элемент дизайна, который имитирует файлопен диалог в вебе. Присабмите документа выбранный файл автоматически аттачится к документу...

    Если надо, что бы файл был приаттачен не к локументу, а в РТ поле, то потом нужно просто детичить его от документа и аттачить в нужное РТ поле уже в самом агенте.
     
  7. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Вот это мне и надо!
    Эт как?
     
  8. Sandr

    Sandr Гость

    у документа тоде могут быть эмбедет объекты.. аттачи.. получить их можно так
    Код (Text):
    If doc.HasEmbedded Then
    Forall o In doc.EmbeddedObjects
    Messagebox( o.Name )
    End Forall
    Else
    можно вылодить по нужному пути, а потом их оттуда забрать и приатачить к РТ полю...

    Это все в один заход в агенте делается...
     
  9. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Как вообще присоединить файл к документу
    Вот сделал я стандартное, для выбора файла
    Код (Text):
    <input type="file" name="attachment" size="40">
    Дальше мне нужно сделать кнопку, типа "Присоединить файл"
    Что в этой кнопке нужно прописать?плз..

    Мне б для начала хоть как-н его тупо прикрепить к файлу!

    Или если я создам отдельное поле, где буду хранить Имя#Путь, то как мне потом этим воспользоваться?
     
  10. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    поставь на Веб форму File Upload Control, только если у тя там текст помечен как хтмл, то с елемента сними эту ментку и с нескольких пробелов перед и после File Upload Control, ато глюк.
    этот елемент те сам нарисует кнопку диалога и поле
     
  11. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    lionk , ну да, так работает, вот только потом я скорее всего не засуну(правильно) файлы в конкретное RTF !!!
     
  12. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Вот выбрал я файл, далее в событии WebQuerySave запускаю агент
    Код (Text):
    Dim s               As New NotesSession
    Dim db              As NotesDatabase
    Dim doc             As NotesDocument

    Set db = s.CurrentDatabase
    Set doc = s.DocumentContext

    Dim rtitem          As NotesRichTextItem
    Dim rtitemTMP       As NotesRichTextItem

    Set rtitem = doc.GetFirstItem( "r" )

    Set rtitemTMP = doc.CreateRichTextItem("foto")

    Call rtitemTMP.EmbedObject( 1454, "", "D:/hills.jpg" )  ' ****

    Call rtitem.AppendRTItem( rtitemTMP )
    Call rtitemTMP.Remove( )
    Call doc.Save( True, True )
    В Вебе насколько я понял ломается на строке с '****
    Объясню что я хотел этим агентом... Чтобы при сохранении документа в Веб, Файл (путь которого прописан вручную) занесся в RTF.
    В Вебе это чего -то не работает... Если в ЛОтусе на событие QueryOpen повесить вызов этого агента, то вроде работает нормально
     
  13. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    ничё у тя так не выйдет.
    ты хочеш чтобы серверный агент обратился к файлу на винте пользователя и залил его сибе.
    а кто ж разрешит агенту хачить компы пользователей и качать их файлы себе.

    единственный путь это чтобы пользователь добровольно залил на сервак свой файл (через File Upload Control ну или ещё както) и потом уже ты работая с файлом в рамках сервера зделал с ним чё надо(перезакинул в нужный ртф).
     
  14. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    верно
     
  15. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Почему тут выскакивает ошибка ?
    Код (Text):
    Type mismatch
     
  16. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    помогите, плз, решить вот такую проблему, уже неделю с ней парюсь....

    Работаю через Upload Control..
    1) выбираю рисунок "Name_1"
    2) Сохраняю...
    3) Делаю проверку кодом:
    Код (Text):
    Forall item In doc.Items

    If Ucase( item.Name ) = "$FILE" Then
    stFileName = item.Values(0)
    End If
    End Forall
    stFileName = "Name_1"
    Т.е. ВСЕ Верно
    4) Хочу добавить рисунок "Name_2", добавляю
    5) Сохраняю
    6 ) Делаю проверку тем же кодом, но результат не верный, получается вот какой список имен
    Код (Text):
    "Name_1"
    "Name_1"
    Вопрос почему??????
    Если сделать второй раз сохранение, то получается все верно:
    Код (Text):
    "Name_1"
    "Name_2"
    Подскажите пожалуйста, почему так происходит???
    Да, и еще, может проблема в том, что этот код в агенте, а агент вызывается из WebQuerySave, может оно что-то не успевает обновится?
    Просто в свойствах дока видно, что там два разных имени, а кодом показывает одно и тоже!!
    Подскажите пожалуйста!
     
  17. NetWood

    NetWood Lotus team
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    308
    Симпатии:
    0
    Добавление - удаление файлов в веб. Просто ставим галочки и все. Общий список во вью.
     

    Вложения:

    • wattach.zip
      Размер файла:
      53,6 КБ
      Просмотров:
      36
  18. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    NetWood, что-то я в Вебе не могу ничего сделать...
    Пишет сообщение:
    Код (Text):
    This Database is not within your data directory and cannot be previewed
     
  19. NetWood

    NetWood Lotus team
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    308
    Симпатии:
    0
    Только из папки DATA открываются файлы на вебе. Что на сервере, что локально.

    Нда. :(
    А мы тут рюшечки - шашечки рисуем.
     
  20. Sandr

    Sandr Гость

    NetWood
    Еще и в теповых папках системы :(
    А ваще - все правильно.. безопасность была бы никакой, будь такая возможность... Тоже када-та маялся с подобным вопросом - анриал...
     
Загрузка...

Поделиться этой страницей