Аттачи в Web

Тема в разделе "Lotus - Программирование", создана пользователем Kizarek86, 8 окт 2009.

  1. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Прошу поделиться опытом и наработками в отображении аттачей в вебе.
    Кто как делает? Чтобы было красиво и удобно (Просматривать/удалять/добавлять)

    Заранее спасибо
     
  2. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
  3. NetWood

    NetWood Lotus team
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    308
    Симпатии:
    0
    XPAGE - это для лентяев :)
    Так простенько совсем...
     

    Вложения:

    • wattach2.zip
      Размер файла:
      558,1 КБ
      Просмотров:
      20
  4. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Даже так.... ну-ну :)
     
  5. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Хороший пример, Спасибо.

    Теперь ещё одна проблема с аттачем.
    Нужно ограничить размер загружаемого файла. Серверное ограничение хорошо, но при сохранении файла превышающего серверные настройки вылезает страница с ошибкой. Нужно либо отловить эту ошибку и выдавать только сообщение яваскриптовое, или ограничивать как то по другому.

    Прошу помочь кто решал такую задачу
     
  6. NetWood

    NetWood Lotus team
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    308
    Симпатии:
    0
    Сделайте поле на форме скрытое. Назовите скажем AttachmentMaxSize. В нем проверку введенных данных
    =====
    REM {uploaded file size};
    wdbn:=@WebDbName;
    CR:=@Char(13)+@Char(10);
    libversion:=@GetProfileField("Configuration_Profile";"cssjsversion");
    gzip:=@If(@Middle(HTTP_Cookie;"onimod_gzip=";";")="1";@True;@False);
    filesystem:=@If(@Middle(HTTP_Cookie;DBID+"_filesystem=";";")="1";@True;@False);
    commonlibpath:=@If(filesystem;@If(gzip;"/domBulletin/gzip/common.js?Open";"/domBulletin/common.js?Open");@If(gzip;"/"+wdbn+"/gzipcommon.js?OpenFileResource";"/"+wdbn+"/common.js?OpenJavascriptLibrary"))+
    "&ExpandSection="+libversion;

    FileSize:=@If(@Attachments>0 ; @Sum(@AttachmentLengths)/1000; 0);
    FileSizeMax:=@GetProfileField("Configuration_Profile" ; "AttachmentMaxSize");
    FileSizeMax:=@If(FileSizeMax="" ; 0 ; FileSizeMax);
    Error := @If ( FileSizeMax=0 | FileSize=0 ; "" ; FileSize > FileSizeMax ; "text_uploadattachementmaxsizereached" ; "");

    @If(Error != "" ;
    @Failure("Expires: Tue, 01 Jan 1980 06:00:00 GMT"+CR+"Pragma: no-cache"+CR+"Content-Type: text/html"+CR+
    "<html><head>"+CR+
    "<script src=\"/"+wdbn+"/JsDbCommonVariables?ReadForm\"></script>"+CR+
    "<script src=\""+commonlibpath+"\"></script>"+CR+
    "<script>_doSkin();</script>"+CR+
    "<title>"+@DbTitle+"</title></head>"+CR+
    "<body bgcolor=ffffff topmargin=0 leftmargin=0 marginheight=0 marginwidth=0 class=\"documentbackground\"><div align=center>"+CR+
    "<IMG SRC=\"/icons/ecblank.gif\" width=1 height=4><TABLE WIDTH=98% CELLPADDING=2 CELLSPACING=10 CLASS=\"doctablebackground\"><TR HEIGHT=120><TD VALIGN=TOP ALIGN=CENTER CLASS=\"doccontent\"><BR>"+CR+
    "<script>document.write("+Error+")</SCRIPT><BR><BR>"+CR+
    "</TD></TR></TABLE></div></body></html>");
    @Success)

    Если размер аттачей превышен, откроется страничка с сообщением и не даст сохранить. Сообщение пишите ручками вместо <script>document.write("+Error+")</SCRIPT> или подключите перменную Error
    Примерно так. Внутри формулы порежьте лишнее, типа _doSkin(); <script>document.write("+Error+")</SCRIPT> Это выдрано из рабочей базы.
     
Загрузка...

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