Об очистке тега изображения при перетаскивании изображения из любого окна браузера в редактор, чтобы ваша CMS знала, что это локальное изображение:
Я реализовал решение, которое проверяет все теги изображений, и, если оно не является локальным изображением, оно копирует изображение на ваш сервер с помощью ajax-запроса и PHP, позвольте мне порекомендовать вам этот вариант:
Во-первых, вы не должны сразу публиковать контент из редактора, а добавлять его в другой скрытый div, чтобы вы могли проанализировать его с помощью javascript, давайте присвоим этому div идентификатор "descriptionDropPlace"
Затем этот код проверит URL каждого изображения, и если он не соответствует вашему локальному домену (здесь мой домен), он выполнит запрос ajax:
var images = $('descriptionDropPlaceimg');
$("descriptionDropPlace img").each(function(index){
var ajaxDone = false;
var src = $(this).attr("src");
var domain = src.match(/^http:\/\/[^/]+/)[0];
if(!domain.match("mydomain")){
$.post('http://'+window.location.hostname+'/phpGetImage.php', { url: src }).done(function(result){
$(images[index]).attr('src', result);
var ajaxDone = true;
});
}
});
Таким образом, phpGetImage.php выглядит следующим образом (есть некоторый код, чтобы определить наличие переменных GET и избавиться от них, а также определить наличие двух изображений с одинаковым именем, но с другим каталогом, и сохранить их с помощью имя целого экранированного символа URL, в котором они находятся):
$url = $_POST["url"];
$headers = get_headers($url, 1);
if(!empty($headers['Location'])){
$url = $headers['Location'];
}
$url = explode("?", $url);
$url = $url[0];
$replace = array("/", ".");
$image = str_replace("http:--", "",str_replace($replace, "-", $url));
$path = './uploads/yourImageDirectory/'.$image;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
file_put_contents($path, $data);
echo base_url().'uploads/yourImageDirectory/'.$image;