Сразу покажу скриншоты, о чём идёт речь:
Позволяет загружать файлы в папку или библиотеку документов на веб-сервере. В работе не сложен, но есть много нюансов.
Итак, исходный код.
1. Скрипт. Тут всё понятно. Находим сгенерированный позже объект и вызываем его метод. Начинается загрузка файлов.
2. Параметры.
3. ActiveX. Единственный момент тут – данный ActiveX компонент (“STSUpld.UploadCtl”) не должен быть отключен в браузере.
4. Кнопки. Данные кнопки должны существовать. Вы можете их не использовать, скрыть и т.п., но они должны быть. Они должны быть с type=”button” (не “submit”) и у них должны быть проставлены свойства AccessKey.
Ещё несколько особенностей (скажем спасибо Wictor Wilén):
Позволяет загружать файлы в папку или библиотеку документов на веб-сервере. В работе не сложен, но есть много нюансов.
Итак, исходный код.
<script type="text/jscript"> function DocumentUpload() { var uploadCtl = document.getElementById("idUploadCtl"); uploadCtl.MultipleUpload(); } </script> <input type="hidden" name="Cmd" value="Save" /> <input type="hidden" name="putopts" value="true" /> <!-- Overwrite files --> <input type="hidden" name="Confirmation-URL" value="<%= Page.Request.Url.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped) %>" /> <input type="hidden" name="PostURL" value="" /> <input type="hidden" name="VTI-GROUP" value="0" /> <input type="hidden" name="destination" id="destination" value="/Documents"> <!-- Files destination path, must already exist --> <asp:Panel runat="server" Width="100%"> <script> try { if (new ActiveXObject("STSUpld.UploadCtl")) document.write("<OBJECT id=\"idUploadCtl\" name=\"idUploadCtl\" CLASSID=\"CLSID:07B06095-5687-4d13-9E32-12B4259C9813\" WIDTH=\"100%\" HEIGHT=\"350px\"></OBJECT>"); } catch (error) { } </script> <asp:Button runat="server" accesskey="O" id="OKButton" CssClass="ms-ButtonHeightWidth" Text="Загрузить файлы" UseSubmitBehavior="False" OnClientClick="DocumentUpload(); return false;"/> <asp:Button runat="server" accesskey="C" id="CancelButton" CssClass="ms-ButtonHeightWidth" Text="Отмена" UseSubmitBehavior="False" style="display: none;"/> </asp:Panel>Что мы имеем:
- Скрипт запуска загрузки файлов
- Набор параметров, организованных как скрытые поля с атрибутом name
- Панель с ActiveX и объектом, отображающими основной интерфейс
- Две кнопки – ok и отмена
1. Скрипт. Тут всё понятно. Находим сгенерированный позже объект и вызываем его метод. Начинается загрузка файлов.
2. Параметры.
- putopts – указывает необходимость перезаписи файлов, при совпадении имён. Иначе файл не будет загружен
- destination – указывает путь к папке или библиотеке документов куда необходимо загружать файлы
- PostURL – теоретически, сюда нужно указать url страницы, которой нужно пересылать файлы, чтобы страница сама определила дальнейшую их судьбу; но на практике это не заработало (компонент сам загружает файлы, по пути указанному в destination)
3. ActiveX. Единственный момент тут – данный ActiveX компонент (“STSUpld.UploadCtl”) не должен быть отключен в браузере.
4. Кнопки. Данные кнопки должны существовать. Вы можете их не использовать, скрыть и т.п., но они должны быть. Они должны быть с type=”button” (не “submit”) и у них должны быть проставлены свойства AccessKey.
Ещё несколько особенностей (скажем спасибо Wictor Wilén):
- Все кнопки на странице должны иметь атрибут AccessKey
- Должна быть кнопка с AccessKey=”O” (для OK) и AccessKey=”С” (для Cancel)
- Значение для destination изначально не должно быть пустым, при необходимости его можно изменить позже
Комментариев нет:
Отправить комментарий