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

Тема в разделе "Lotus - Администрирование", создана пользователем bun, 20 июн 2007.

Статус темы:
Закрыта.
  1. bun

    bun Гость

    Здравствуйте.
    Как можно ограничить размер файлов помещаемых базу например до 50Мб?
    Или хотябы как можно сделать нечто вроде варнинга с текстом, который бы появлялся каждый раз при попытке закачать какой-либо фаил в базу?
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: bun
    получаеться что файл вставляеться в документ, ну так и не давайте сохранить документ если размер вложений привышает допустимый ( 50мб )
     
  3. bun

    bun Гость

    Как? Где выставляется это ограничение?
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: bun
    Вы админ или програмист, если админ то даже и не знаю ,а если програмист, то на QuerySave Документа Вам надо зделать прговерку
     
  5. bun

    bun Гость

    Ну так как это ветка форума Lotus -> Администрирование то можно предположить, что я скорее админ :)
    Но все-равно спасибо, однако вопрос остается открытым. Как это можно сделать средствами администрирования, или там через дизайнер ??
     
  6. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--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]
    Не факт,
    скорее всего имено написанием кода это решаеться
     
  7. puks

    puks Lotus team
    Lotus team

    Регистрация:
    3 фев 2007
    Сообщения:
    1.967
    Симпатии:
    16
    Административные средства позволяют только установить лимит на всю базу. Чтобы контролировать размер отдельного документа, десйствительно надо писать в QuerySave и проверять там Source.Document.Size , который возвращает размер в байтах. Но кроме этого может потребоваться защита от копирования документа в базу и посылка по почте в случае mail-in базы.
     
  8. bun

    bun Гость

    Лезть в код не выйдет, т.к. он написан сторонней организацией, ограничение на всю базу увы тоже не подходит.
    А как сделать чтобы вылазил warning с предупреждением при каждой попытке закачать что-либо?
    Или это опять только програмить?
     
  9. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--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]
    да, получаеться дизайн Вам не доступен в данной базе?
     
  10. puks

    puks Lotus team
    Lotus team

    Регистрация:
    3 фев 2007
    Сообщения:
    1.967
    Симпатии:
    16
    Административных средств - нет. А кода написать - пару строчек.
     
  11. bun

    bun Гость

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

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

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: bun
    ну если дизайн открыт , то на QuerySave у формы


    Код (Text):
    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
    где ХХХ максимальный размер в байтах
    приблизительно так
     
  13. puks

    puks Lotus team
    Lotus team

    Регистрация:
    3 фев 2007
    Сообщения:
    1.967
    Симпатии:
    16
    Для: Morpheus

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

    Для: bun

    Кинь мне в личку Аську, или что-нибудь как с тобой связаться. Поговорим.
     
  14. bun

    bun Гость

    Всем огромное спасибо господа!!!! Особенно Morpheus!!! То что надо. Спасибо!!!


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

    Hedg Гость

    Для: bun
    Добавь в код проверку на новый документ, если документ не новый, то разрешить сохранение c превышением лимита.

    Код (Text):
    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
     
  16. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Как вариант зделать при открытии вычиляемое поле/код - размер документа - если размер при открытии меньше размера при сохзранении значит только что туда попытались засунуть чтото бальшое )))
     
Загрузка...
Статус темы:
Закрыта.

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