Ограничение размера файла помещаемого в базу. Как?

  • Автор темы bun
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B
#1
Здравствуйте.
Как можно ограничить размер файлов помещаемых базу например до 50Мб?
Или хотябы как можно сделать нечто вроде варнинга с текстом, который бы появлялся каждый раз при попытке закачать какой-либо фаил в базу?
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
Для: bun
получаеться что файл вставляеться в документ, ну так и не давайте сохранить документ если размер вложений привышает допустимый ( 50мб )
 

morpheus

скриптописец
07.08.2006
3 915
1
#4
Для: bun
Вы админ или програмист, если админ то даже и не знаю ,а если програмист, то на QuerySave Документа Вам надо зделать прговерку
 
B
#5
Для: bun
Вы админ или програмист, если админ то даже и не знаю ,а если програмист, то на QuerySave Документа Вам надо зделать прговерку
Ну так как это ветка форума Lotus -> Администрирование то можно предположить, что я скорее админ :)
Но все-равно спасибо, однако вопрос остается открытым. Как это можно сделать средствами администрирования, или там через дизайнер ??
 

morpheus

скриптописец
07.08.2006
3 915
1
#6
<!--QuoteBegin-bun+20:06:2007, 09:18 -->
<span class="vbquote">(bun @ 20:06:2007, 09:18 )</span><!--QuoteEBegin-->то можно предположить, что я скорее админ
[snapback]69999" rel="nofollow" target="_blank[/snapback]​
[/quote]
Не факт,
скорее всего имено написанием кода это решаеться
 

puks

Lotus team
03.02.2007
1 971
8
#7
Административные средства позволяют только установить лимит на всю базу. Чтобы контролировать размер отдельного документа, десйствительно надо писать в QuerySave и проверять там Source.Document.Size , который возвращает размер в байтах. Но кроме этого может потребоваться защита от копирования документа в базу и посылка по почте в случае mail-in базы.
 
B
#8
Лезть в код не выйдет, т.к. он написан сторонней организацией, ограничение на всю базу увы тоже не подходит.
А как сделать чтобы вылазил warning с предупреждением при каждой попытке закачать что-либо?
Или это опять только програмить?
 

morpheus

скриптописец
07.08.2006
3 915
1
#9
<!--QuoteBegin-bun+20:06:2007, 13:42 -->
<span class="vbquote">(bun @ 20:06:2007, 13:42 )</span><!--QuoteEBegin-->Или это опять только програмить?
[snapback]70040" rel="nofollow" target="_blank[/snapback]​
[/quote]
да, получаеться дизайн Вам не доступен в данной базе?
 

puks

Lotus team
03.02.2007
1 971
8
#10
Административных средств - нет. А кода написать - пару строчек.
 
B
#11
Ладно... открываю карты... в обще я сам не админ... админ Lotus у нас другой человек, но сам он эту задачу решить не может , поэтому я здесь... т.к. вопрос все-таки решать надо.

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

Заранее огромное спасибо!
 

morpheus

скриптописец
07.08.2006
3 915
1
#12
Для: bun
ну если дизайн открыт , то на QuerySave у формы


Код:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim doc As NotesDocument
Set doc = Source.Document
Dim sizeInBytes As Long
'...set value of doc...
sizeInBytes = doc.Size
MsgBox "размер вложения составляет (в Kb) - " & Cstr( sizeInBytes / 1024 )
If sizeInBytes > xxx then Continue = false ' запрещаем схранять док если он весит больше чем надо
end Sub
где ХХХ максимальный размер в байтах
приблизительно так
 

puks

Lotus team
03.02.2007
1 971
8
#13
Для: Morpheus

Там же Source уже является текущим UIDocument.

Для: bun

Кинь мне в личку Аську, или что-нибудь как с тобой связаться. Поговорим.
 
B
#14
Всем огромное спасибо господа!!!! Особенно Morpheus!!! То что надо. Спасибо!!!


Эх .... поторопился.... Вылезла другая проблема.
В базе есть документы превышающие данный объем, причем иногда их нужно редактировать, но соответсвенно вставив данный код в QuerySave у формы, сохранить эти изменения не получается.
Как быть?
 
H
#15
Для: bun
Добавь в код проверку на новый документ, если документ не новый, то разрешить сохранение c превышением лимита.

Код:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim doc As NotesDocument
Set doc = Source.Document
Dim sizeInBytes As Long
'...set value of doc...
sizeInBytes = doc.Size
MsgBox "размер вложения составляет (в Kb) - " & Cstr( sizeInBytes / 1024 )
If doc.IsNewDoc Then
If sizeInBytes > xxx then Continue = false ' запрещаем схранять док если он весит больше чем надо
Else
....
End If
end Sub
 

morpheus

скриптописец
07.08.2006
3 915
1
#16
Как вариант зделать при открытии вычиляемое поле/код - размер документа - если размер при открытии меньше размера при сохзранении значит только что туда попытались засунуть чтото бальшое )))
 
Статус
Закрыто для дальнейших ответов.