Сайт на домине

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

команду на LS: Yield

используешь?
 
yield не использую

Код:
Sub SetImageDimensions(doc As NotesDocument)
   Dim jSession As New JavaSession()
    Dim toolkit As JAVACLASS
    Set toolkit  = jSession.GetClass("java/awt/Toolkit")
    Dim image As JavaObject
   Dim rtitem As NotesRichTextItem
   Dim tmpFolder As String
   Dim filePath As String
       
   tmpFolder = getTmpFolder()
       
   Set rtitem = doc.Getfirstitem("Files")
   If IsEmpty (rtitem.Embeddedobjects) Then Exit Sub
   ForAll o In rtitem.Embeddedobjects
       If (o.Type = EMBED_ATTACHMENT) Then
           Select Case LCase(o.Source)
           Case LCase(doc.PictureName(0))               
               filePath = tmpFolder + Format(Now,"hhnnss")+"_"+o.Source
               Call o.ExtractFile(filePath)               
               Set image = toolkit.getDefaultToolkit().getImage( filePath )
               doc.PictureWidth = image.getWidth()
               doc.PictureHeight = image.getHeight()
 
Код:
Call AgentLog(False, "Выкладываем на диск: " & sNF)
    Call object.ExtractFile(sNF)
   
    Set jSession = New JavaSession
    Set imgClass = jSession.GetClass("ImageResizer")
    FileName = sNF
    Set jImage = imgClass.CreateObject("(Ljava/lang/String;)V", FileName)
    ImageHeight = jImage.getHeight()
    ImageWidth = jImage.getWidth()
думаю трабла в том, что всё делаете явой
попробуйте скриптом выложить файл а потом по нему пройтись явой
 
думаю трабла в том, что всё делаете явой
попробуйте скриптом выложить файл а потом по нему пройтись явой

так так и делаю, сначала скриптом выкладываю, а затем явой достаю размеры, в коде ведь видно.
проблема удалить этот файл потом из темпа, чтобы темп не рос.

может явой и удалять
 
@Gandliar код в агенте исполняется?
[doublepost=1487674486,1487674382][/doublepost]да и в любом случае - сначала деструктор класса, работавшего с файлом, а потом - удаление файла
 
вобщем пробовал агентом, не агентом, деструктор класса, ниче не помогло.

накатал строчку чтобы удаляло файл на яве и все равно не удаляет.

причем если скрипт пошагово запускать в отладчике - удаляет, если просто запускать - нет
 
Последнее редактирование:
@Gandliar смысл того что я написал - агент дестроит объекты не сразу и удалить не получится...
надо отследить - какие потоки открыты и их закрывать принудительно, в конце кода
 
засуньте узнавание размеров к отдельную функцию, чтобы класс явы создавался после выкрадывания файла
 
Посмотрел класс imageResizer, посмотрел как там берутся размеры.
Переделал свою функцию, заработало, все удаляет.
То есть проблема была в том, что предыдущий вариант держал файл, а тут имадж загоняется в память, а файл можно закрыть и удалить.

Код:
Dim jSession As New Javasession
   Dim FileInputStream As Javaclass
   Set FileInputStream = jSession.GetClass("java/io/FileInputStream")  
   Dim fis As Javaobject
   Set fis = FileInputStream.Createobject("(Ljava/lang/String;)V",filePath)
   Dim ImageIO As Javaclass
   Set ImageIO = jSession.GetClass("javax/imageio/ImageIO")
   Dim bi As Javaobject
   Set bi = ImageIO.read(fis)
   Call fis.close()
   Call doc.Replaceitemvalue(widthName,bi.getWidth())
   Call doc.Replaceitemvalue(heightName,bi.getHeight())
   Dim File As Javaclass
   Set File = jSession.GetClass("java/io/File")
   Dim f As Javaobject  
   Set f = File.Createobject("(Ljava/lang/String;)V",filePath)
   Call f.delete()
 
@Gandliar у AWT имеджа есть ф-ция flush() может её надо было звать
 
  • Нравится
Реакции: Gandliar
Спасибо за советы.

Очередной вопрос :)

Может кто тестил/использовал варианты для сайта

Например есть на сайте 10 000 документов квартир на продажу
Надо сделать возможность выборки по параметрам (дофига параметров)+ выборка должна быть отсортирована по некоторым параметрам (две сотрировки на выбор)

Вот вопрос как лучше реализовать, чтобы работало быстро.

1. Сделать ряд сортированных видов и по ним запускать ftSearch и рисовать html
2. Загнать в mySql базу данные и доставать запросом через odbc
 
больше вопрос - про динамический набор параметров...
как обычно делают... типа изменил параметр - других стало меньше (основываясь на сокращении выборки)
и указывать кол-во сразу
и такая динамика на реляционке (в классич. понимании) - это неудобно
тут надо смотреть на "другие" варианты, сходу не готов посоветовать
такое лучше смотреть здесь -
 
принтовать агентом

ну мне удобнее открывать документ и потом в ричтекст выкладывать wqo агентом.

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

Поэтому и спрашиваю, у кого какой опыт есть
[doublepost=1487754526,1487754031][/doublepost]
больше вопрос - про динамический набор параметров...
как обычно делают... типа изменил параметр - других стало меньше (основываясь на сокращении выборки)
и указывать кол-во сразу
и такая динамика на реляционке (в классич. понимании) - это неудобно
тут надо смотреть на "другие" варианты, сходу не готов посоветовать
такое лучше смотреть здесь -

Ну мне хотя бы реализовать по-простому, форма с параметрами, отправил, получил результат.
Вопрос как лучше двигаться, через лотусовые виды и фтсерч
или загонять в реляционку и тащить черз одбс например
главное чтобы быстро было )
 
1
один вид со всеми нужными категориями сразу, и простой лукап
не пойдёт -
выборка должна быть отсортирована по некоторым параметрам (две сотрировки на выбор)
- "две сотрировки на выбор" требуют N*2 лукапных видов (N кол-во параметров)
2 лукап вернёт ВСЁ, что сможет, а нафига? Если на показ только 30 (к примеру)
3 штоб быстро - должно быть всё предсортировано (что в видах, что в реляционных таблицах. и того и другого N штук). По этому нафига SQL?
4 поиск (c ограничением выборки) в ViewEntryCollection тут будет шустрее, чем ftsearch (ftsearch с сортировкой двухэтапен - сначала, по сути, dbsearch, а потом сортировка видом, полнотекстовый индекс то у базы всего один)

вроде так
 
Мы в соцсетях:

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