【问题标题】:How to get image name and image type uploaded in froala editor?如何获取在 froala 编辑器中上传的图像名称和图像类型?
【发布时间】:2019-06-18 22:04:58
【问题描述】:

我在 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);
   }

我就是这样处理的。

【问题讨论】:

    标签: ajax laravel


    【解决方案1】:

    首先,Froala Editor 提供了非常详细的文档,我很容易从他们的文档中挑选出以下脚本:

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

    这意味着您需要编写一个用于 Image Upload Service 的函数或类。每当 Froala 上传图像时,它都会向您的 Url 或您的案例 laravel 中的路由执行 Ajax 请求。

    它到达 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"}.
    

    【讨论】:

    • 嗨,Aparna - 当您更改该图像上传 URL 时,请向我显示路由和与之关联的控制器。让我们看看您在 laravel 中使用的方法或函数。
    猜你喜欢
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多