logo

Переименование файла в контейнере. Способ 2

После выхода статьи Переименование файла в контейнере без импорта/экспорта Андрей Волков прислал описание еще одиного способа, который в отличии от предыдущего можно реализовать и в 12-й версии FileMaker. Способ использует возможность FileMaker Server XML publishing


Представим, что у нас на сервере FMS 12 по адресу 127.0.0.0 лежит файл Products.fmp12. В этом файле есть таблица Products, в ней помимо прочих есть поле-контейнер Products::photo с изображением товаров. Нам необходимо, чтобы в поле-контейнер Products::image попадало то же самое изображение, но с другим названием файла.

Предположим, что мы выполняем эту операцию на макете с названием Products_Detail. Допустим, оригинальная картинка в текущей записи у нас называется any.photo.jpg, а мы хотим, чтобы картинка называлась any_photo.jpg

Команда Insert From URL[Products::image; $url] выполнит эту задачу, если в качестве $url мы зададим следующую строку

http://127.0.0.0/fmi/xml/cnt/any_photo.jpg?-db=products&-lay=products_detail&-field=photo(1)&-recid=9

подразумевается, что

  • 127.0.0.0 — это адрес хоста FMS12
  • any_photo.jpg — новое имя файла (картинки в данном случае)
  • products — имя файла БД
  • products_detail — название макета, который используем, чтобы получить данные из таблицы
  • photo(1) — это название и (в скобках) номер репетиции поля-контейнера, в котором хранится оригинал файла и которое ОБЯЗАТЕЛЬНО должно быть расположено на макете
  • 9 — идентификатор записи, который может быть получен функцией Get(RecordID)

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

<img src="http://127.0.0.0/fmi/xml/cnt/any_photo.jpg?-db=products&-lay=products_detail&-field=photo(1)&-recid=9" />

выведет картинку из базы данных в ее оригинальном размере.

Чтобы все это работало, необходимо:

  • в настройках сервера выставить флаг Enable XML publishing
  • в файле Products.fmp12 активировать учетную запись Гостя
  • в настройках привилегий гостевого акаунта разрешить доступ via XML

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

31 + = 38