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

  • Автор темы wowa
  • Дата начала
W

wowa

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

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

wowa

Sandr , если не сложно, можно в кратце своими словами?
 
K

KLif

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

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

wowa

KLif , ну вот я тоже так думал... или создавать какой-то отдельный документ (но это еще не продумывал)
 
S

Sandr

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

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

wowa

Если надо, что бы файл был приаттачен не к локументу, а в РТ поле, то потом нужно просто детичить его от документа и аттачить в нужное РТ поле уже в самом агенте.
Вот это мне и надо!
детичить его от документа
Эт как?
 
S

Sandr

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

можно вылодить по нужному пути, а потом их оттуда забрать и приатачить к РТ полю...

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

wowa

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

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

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

lionk

поставь на Веб форму File Upload Control, только если у тя там текст помечен как хтмл, то с елемента сними эту ментку и с нескольких пробелов перед и после File Upload Control, ато глюк.
этот елемент те сам нарисует кнопку диалога и поле
 
W

wowa

lionk , ну да, так работает, вот только потом я скорее всего не засуну(правильно) файлы в конкретное RTF !!!
 
W

wowa

2. Если нужно чтобы эти файлы потом отображались в веб при открытии этого дока, то пишешь агента или js функцию, которая разбирает этот поле (split) и пробегая по всем его элементам автоматически прикрепляет все файлы
Вот выбрал я файл, далее в событии WebQuerySave запускаю агент
Код:
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 повесить вызов этого агента, то вроде работает нормально
 
L

lionk

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

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

wowa

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

Работаю через Upload Control..
1) выбираю рисунок "Name_1"
2) Сохраняю...
3) Делаю проверку кодом:
Код:
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 ) Делаю проверку тем же кодом, но результат не верный, получается вот какой список имен
Код:
"Name_1"
"Name_1"
Вопрос почему??????
Если сделать второй раз сохранение, то получается все верно:
Код:
"Name_1"
"Name_2"
Подскажите пожалуйста, почему так происходит???
Да, и еще, может проблема в том, что этот код в агенте, а агент вызывается из WebQuerySave, может оно что-то не успевает обновится?
Просто в свойствах дока видно, что там два разных имени, а кодом показывает одно и тоже!!
Подскажите пожалуйста!
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Добавление - удаление файлов в веб. Просто ставим галочки и все. Общий список во вью.
 

Вложения

  • wattach.zip
    53,6 КБ · Просмотры: 191
W

wowa

NetWood, что-то я в Вебе не могу ничего сделать...
Пишет сообщение:
Код:
This Database is not within your data directory and cannot be previewed
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Только из папки DATA открываются файлы на вебе. Что на сервере, что локально.

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

Sandr

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!