Поделиться через


Управление файлами изображений (элементы управления диаграммы)

Если свойство RenderType имеет значение ImageTag, то элемент управления диаграммы сохраняет обработанные изображения диаграммы в виде файлов в памяти или на диске (дополнительные сведения см. в разделе Визуализация изображений диаграммы). Можно задать порядок управления файлами изображения в элементе управления диаграммы. Для этого воспользуйтесь свойством ImageStorageMode.

В свойстве ImageStorageMode можно выбрать управление файлами изображений с помощью обработчика HTTP-данных диаграммы или управление вручную.

Использование обработчика HTTP-данных диаграммы

По умолчанию свойство ImageStorageMode имеет значение UseHttpHandler. В этом случае элемент управления диаграммы использует для управления обработанными изображениями диаграммы обработчик ChartHttpHandler, зарегистрированный в файле Web.config.

Обработчик HTTP-данных диаграммы выполняет следующие задачи.

  • Предотвращение конфликтов перезаписи файлов в кластере серверов или на узле с несколькими процессами.

  • Обеспечение безопасности обработанных изображений диаграммы: пользователям запрещается загружать изображения диаграммы, обработанные для других пользователей.

  • Сокращение числа дисковых операций за счет хранения файлов изображения в памяти или использования других систем хранения, например Microsoft SQL Server.

Использование

Когда элемент управления диаграммы перетаскивается из области элементов в область конструктора страницы ASP.NET, обработчик ChartHttpHandler автоматически регистрируется в файле Web.config в качестве ChartImageHandler. Порядок работы ChartImageHandler можно настроить в элементе <appSettings>. Далее приведен необходимый раздел кода с автоматически созданными параметрами.

<appSettings>

<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />

</appSettings>

Параметры в атрибуте value позволяют настроить обработчик HTTP-данных диаграммы. Описание каждого параметра см. в следующей таблице.

Параметр

Описание

storage

Режим хранения. Возможны три значения.

  • file: хранить обработанные изображения диаграммы во временных файлах. Также необходимо указать в параметре url или dir место хранения. В кластере серверов или на узле с несколькими процессами необходимо указывать параметр dir.

  • memory: хранить обработанные изображения диаграммы в памяти выполняющегося процесса. Не используйте этот вариант в кластере серверов или на узле с несколькими процессами.

  • session: хранить обработанные изображения диаграммы в переменной сеанса.

url

Относительный URL-адрес, по которому хранится изображение. Если указан параметр dir, то он используется вместо url.

Значение по умолчанию — «~/».

dir

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

timeout

Время ожидания обработанных изображений диаграммы (в секундах). По истечении этого периода изображение может замещаться новым.

Значение по умолчанию — 30.

handler

Пользовательская реализация интерфейса IChartStorageHandler. Значение должно иметь формат полного имени сборки. Например, MyNamespace.MyClass.MyHandler.

privateImages

Защита конфиденциальности. Если установлено значение true, то созданное изображение может загружаться только владельцем в случае, когда применяются следующие типы идентификации.

  • Пользователь прошел проверку подлинности.

  • Включен AnonymousID.

  • Доступен SessionID.

Значение по умолчанию — true.

deleteAfterServicing

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

Значение по умолчанию — true.

webDevServerUseConfigSettings

Показывает, нужно ли хранить обработанные изображения диаграммы в памяти, когда приложение работает в режиме полного доверия с использованием сервера разработки Visual Studio.

Значение по умолчанию — true. Это может означать, что параметры в файле Web.config не действуют, когда приложение ASP.NET запускается из Visual Studio.

Параметры конфигурации на различных уровнях доверия

В следующем списке показаны уровни доверия и их воздействие на параметры конфигурации в файле Web.config.

  • Полное доверие: применяются все варианты конфигурации.

  • Высокое доверие: не удается обнаружить сервер разработки ASP.NET. И параметр webDevServerUseConfigSettings не действует.

  • Среднее доверие: аналогично высокому доверию.

  • Низкое доверие: аналогично высокому доверию, однако доступ к файлам запрещается. Параметр storage необходимо установить в значение session или memory.

  • Минимальное доверие: аналогично низкому доверию, однако не удается обнаружить обработчик HTTP-данных диаграммы. Это значит, что в файле Web.config обязательно наличие раздела ChartImageHandler.

Управление изображениями вручную

Для управления обработанными изображениями диаграммы вручную установите свойство ImageStorageMode в значение UseImageLocation, а затем установите в свойстве ImageLocation абсолютный или относительный путь.

Примечание

В этом режиме каждый элемент управления диаграммы независимо управляет хранением одного изображения.

Свойство ImageLocation может содержать путь, а также определенные ключевые слова. Например, «~/Temp/ChartPic_#SEQ(300,5)». Эта строка состоит из трех элементов.

  • Абсолютный или относительный путь к каталогу. Например, «~/Temp/».

  • Имя файла или общее начало для всех имен файлов изображений. Например, «ChartPicture_».

  • Ключевое слово. Например, «#SEQ(300, 5)».

ImageLocation без ключевых слов

Если указать расположение образа без ключевого слова, то элемент управления диаграммы использует один файл для визуализации всех образов. Путь к результирующему файлу представляет каталог, начинающийся с указанного текста, а расширение указывается в свойстве ImageType. Например, «~/Temp/ChartPicture_.png».

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

ImageLocation с ключевыми словами

В свойство ImageLocation можно вставлять три различных ключевых слова.

Ключевое слово

Описание

#UID

Создает уникальные идентификатор для каждого обработанного изображения диаграммы. Например, «~/Temp/ChartPicture#UID».

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

#SEQ(maxFiles,minutes)

Создает порядковый номер файла до числа, определенного параметром maxFiles, а затем начинает последовательность заново, заменяя первый файл в последовательности. Например, строка «Picture_#SEQ(300,5)» создает следующие имена файлов (предполагая, что свойство ImageType имеет значение Png): Picture_000001.jpg, Picture_000002.jpg...

Параметр minutes задает время ожидания для каждого файла в последовательности, однако он не гарантирует допустимость имени файла в течение указанного периода. Если файл перезаписывается до истечения времени ожидания, то в журнал событий приложения вставляется предупреждение. Чтобы предотвратить ошибочную перезапись файлов изображений, для параметра maxFile следует установить достаточно большое значение.

#NOGUIDPARAM

Удаляет строку идентификатора GUID из URL-адреса файла изображения. Например, «Picture_#SEQ(300,5)#NOGUIDPARAM».

По умолчанию элемент управления диаграммы добавляет к URL-адресу изображения строку идентификатора GUID.

Тип изображения и сжатие

Чтобы указать тип изображения в случае, когда изображения диаграммы сохраняются во временных файлах, используйте свойство ImageType элемента управления диаграммы. Если это свойство установлено в значение Jpeg, также можно указать сжатие JPEG в свойстве Compression элемента управления диаграммы.

См. также

Другие ресурсы

Визуализация изображений диаграммы

Использование элементов диаграммы