Я использую JSF2.2, Tomcat 8 и MySQL DB для создания простой CMS. На моих обратных страницах я использую Primefaces p:editor
для создания/редактирования содержимого моей страницы. Я хотел бы вставить изображение где-нибудь в текст. Было бы здорово, если бы я мог загрузить изображение и вставить его в текущую позицию курсора. В идеале изображение должно быть сохранено как blob, но если его проще реализовать, он может быть сохранен как локальный файл.
Я вижу, что p:editor
уже имеет возможность вставить URL-адрес изображения, в результате чего в тексте будет указан тег <img>
. Но мне действительно хотелось бы загрузить изображение с моего локального диска. До сих пор я не мог Google ничего полезного.Вставить изображение в редактор Primefaces
1
A
ответ
2
это, как я сделал это:
.xhtml:
<p:editor id="editor"
widgetVar="editWidget"
value="#AnnouncementBean.text}" />
<p:fileUpload id="upload"
fileUploadListener="#{AnnouncementBean.uploadListener}"
label="Insert image"
mode="advanced"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
update="editor, growl">
</p:fileUpload>
An в моем езервное Bean в uploadListener после загрузки файла:
String value = FacesContext.getCurrentInstance()
.getExternalContext().getRequestParameterMap().get("editor_input");
setText(value + "<img src=\"/uploads/" + result.getName()+"\" />");
RequestContext.getCurrentInstance().update("editor_input");
где "editor_input" referes к поле фактической формы, предоставленное редактору (PF добавляет значение__имя к идентификатору вашего редактора) Обратите внимание, как я обновляю editor_input
, а не фактический editor
. Только проблема заключается в том, что изображение добавляется в конец текста. вы должны переместить его вручную в редакторе
0
Вы можете использовать строку, чтобы получить значение редактора (или textEditor), а затем использовать регулярное выражение для поиска всех элементов img.
Это мой код.
String regex="<img src="data:image/(gif|jpe?g|png);base64,([^"]*")[^<>]*>";
Matcher m = Pattern.compile(regex).matcher(your_textEditor_value);
while(m.find()){
String imageFileType=m.group(1);
String imageDataString=m.group(2);
byte[] imageData=Base64.decodeBase64(imageDataString);
}
ImageFileType - это ваш тип файла, а imageData - это данные файла. Вы можете использовать его для других целей.
Смежные вопросы
- 1. Вставить изображение в редактор tinymce
- 2. Как вставить изображение в редактор magento cms
- 3. Primefaces редактор и JQuery
- 4. Невозможно вставить изображение через Umbraco RichText редактор
- 5. Primefaces 3.5 Редактор сохранить содержимое
- 6. Редактор PrimeFaces не обновляет значение
- 7. Изображение в Primefaces feedReader
- 8. PrimeFaces редактор помещает параметры в текст
- 9. Как настроить редактор всегда активным в PrimeFaces?
- 10. Редактор Календарь в файле Primefaces 3.5 потерян?
- 11. Скопировать вставить изображение в редактор Wordpress + импорт в медиа-библиотеку?
- 12. Как вставить изображение с клиентской стороны в редактор?
- 13. Kendo-editor: Как вставить изображение в редактор кендо?
- 14. Primefaces INPLACE редактор всегда обновляет бэк боб
- 15. Осталось символов для р: редактор Primefaces
- 16. Primefaces Редактор Inplace - сохранение никогда не срабатывает
- 17. Как использовать редактор разметки на JSF - Primefaces
- 18. PrimeFaces 3.5 Редактор не может удалить текст
- 19. Где вставить wirisplugins.js в редактор joomla tinymce
- 20. Как вставить изображение в tinymce?
- 21. Невозможно вставить EJB в PrimeFaces LazyDataModel
- 22. преобразования в в текстовых полях и редактор primefaces 5.3
- 23. PrimeFaces: экспорт график как изображение
- 24. printscreen + вставить изображение в tinymce и редактор ckeditor не вставляет изображение
- 25. Редактор PrimeFaces Rich Text конвертирует в обычный inputTextArea
- 26. Как вставить редактор HTML в сетку?
- 27. Вставить текст в внешний текстовый редактор
- 28. Вставить из слова в редактор extjs
- 29. Как вставить текст в редактор Cloud9?
- 30. Joomla - Вставить текст в редактор через плагин
Спасибо за ответ. Мне сейчас не хватает времени, поэтому я посмотрю и попробую позже на этой неделе. – vtomic85