Как получить имя и тип изображения, загруженные в редактор froala? - PullRequest
0 голосов
/ 18 июня 2019

Я загрузил изображение в редактор froala, но я не получаю имя изображения и тип изображения в ajax. Как я могу переместить этот файл на свой сервер, используя laravel?

В ajax:

let editor = new FroalaEditor('div#edit', {}, function () {});

Используя это, я получаю имя файла в виде строки.

В контроллере Laravel:

  $dom = new \DomDocument();
   $dom->loadHtml($issue_description, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);    
   $images = $dom->getElementsByTagName('img');
    foreach($images as $k => $img){
       $data = $img->getAttribute('src');
        list($type, $data) = explode(',', $data);
       list(, $data)      = explode(',', $data);
       $data = base64_decode($data);
       $image_name= "/upload/" . time().$k.'.png';
       $path = public_path() . $image_name;
       file_put_contents($path, $data);
        $img->removeAttribute('src');
       $img->setAttribute('src', $image_name);
   }

Вот как я справляюсь.

1 Ответ

0 голосов
/ 18 июня 2019

Прежде всего, Froala Editor предоставляет очень подробную документацию. Одна из вещей, которую я легко выбрал из их документов, это скрипт ниже:

<script>
    new FroalaEditor('#edit', {
      // Set the file upload URL.
      imageUploadURL: '/upload_image.php',

      imageUploadParams: {
        id: 'my_editor'
      }
    })
  </script>

Это означает, что вам нужно написать функцию или классэто служба загрузки изображений.Всякий раз, когда Froala загружает изображение, оно выполняет запрос Ajax на ваш URL или маршрут в вашем случае laravel.

Когда оно достигает Laravel, то в вашем контроллере или функции вы можете выполнить:

$image = $request->file('name_of_file') or using raw PHP   $filename = explode(".", $_FILES[$fieldname]["name"]);

Ваша функция должна затем вернуть ответ со строкой URL загруженного изображения, например, ниже:

E.g.: {"link":"http://server_address/uploads/name_of_file"}.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...