Сделайте отдельно загрузчик файлов. Требования к нему:
- на сервере - проверка разрешений, проверка MIME, анти-XSS
- на сервере, опционально - преобразование изображений, генерация и сохранение миниатюр
- возвращает параметры загруженного в AJAX
Напишите небольшой скрипт, который будет на клиенте ловить ответ от загрузчика, и вставлять картинки или ссылки в редактор.
Пример для CKEditor с jQuery:
if (response.is_image)
{
var thumb_name = response.file;
var full_name = thumb_name.replace('_thumb','');
$(response.editor).ckeditorGet().insertHtml(' <a href="' + full_name + '" target="_blank" class="dialog"><img src="' + thumb_name + '" border="0"></a> ');
}
else
{
$(response.editor).ckeditorGet().insertHtml(' <a href="' + response.file + '" target="_blank" rel="gallery">' + response.filename + '</a> <br /><br />');
}