#file-upload #alfresco #alfresco-share
#загрузка файла #на открытом воздухе #общий доступ на открытом воздухе
Вопрос:
Я работаю с Alfresco Community Edition. Вот код, который я пробовал до сих пор: Alfresco-Smalgyax.
Я создал проект «Все в одном«, чтобы добавить новую страницу в меню «Создать ..«. Моя страница загружается просто отлично.
Я следил за добавлением пункта меню в меню «Создать …» в руководстве DocLib, прежде чем добавлять настраиваемое поле формы и JavaScript на недавно добавленную страницу общего доступа. Я добавил настраиваемое поле для загрузки файла cm:content
. Я добавил немного Javascript, чтобы получить и установить значение cm:name
и mimetype
после выбора загружаемого файла.
Все метаданные обрабатываются правильно. Однако файл не является.
Ранее я успешно смог загрузить файл с пользовательскими данными, следуя документации: Обработка составных форм. Однако это создало совершенно новую конечную точку службы и пользовательскую страницу, которая не унаследовала тот же внешний вид, что и остальная часть веб-приложения.
Страница в разделе создать .. имеет тот же внешний вид, что и остальная часть сайта. Но загрузка завершается неудачно, есть ли способ улучшить внешний вид сайта и загрузить файл с метаданными и задать пользовательский тип в Alfresco?
Разъяснение
cm:content
Поле было настроено следующим образом:
<field id="cm:content" label-id="" mandatory="true">
<constraint-handlers>
<constraint type="MANDATORY" event="input"
validation-handler="Smalgyax.forms.validation.setNameValue" />
</constraint-handlers>
<control template="/file.ftl">
<control-param name="editorAppearance">explorer</control-param>
</control>
</field>
file.ftl задает элемент ввода формы следующим образом:
<input id="${fieldHtmlId}" type="file"
name="${field.name}"
<#if field.disabled>disabled="true"</#if> />
кроме того, file.ftl
добавляет пользовательский JavaScript на страницу, потому что я не смог успешно загрузить его как отдельный файл с помощью
<forms>
<dependencies>
<js src="/set-name-field.js"/>
</dependencies>
<!-- form definition here -->
Ответ №1:
Как ясно видно из документации Alfresco, он не будет поддерживать функцию загрузки. Тип поля показывает cm:содержимое, которое не будет принимать файл для принятия файла, даже если вы настроили и добавили опцию проводника в коде. Именно по этой причине загружается не файл, а только содержимое.
<field id="cm:content" label-id="">
<control>
<control-param name="editorAppearance">explorer</control-param>
</control>
</field>
Для загрузки файла вы должны использовать html-компонент, как показано ниже,
<input type="file" multiple="" name="files[]" class="dnd-file-selection-button">
и javascript должен быть таким же, как file-upload.js и dnd-upload.js .
http://localhost:8180/share/res/components/upload/file-upload.js
http://localhost:8180/share/res/components/upload/dnd-upload.js
Пожалуйста, перейдите по ссылке ниже, чтобы загрузить файл с помощью вызова ajax.
https://hub.alfresco.com/t5/alfresco-content-services-forum/how-to-upload-a-file-from-a-custom-share-page/td-p/32361