ruby on rails aliyun oss百度编辑器上传

本文介绍如何在Ruby on Rails项目中集成百度编辑器,包括修改ueditor.all.min.js文件以匹配Ruby on Rails的action命名约定,以及实现图片上传、删除等功能的具体代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html集成百度编辑器就很简单了,不过需要注意的是链接中,ruby on rails的链接默认action是操作名称,而百度编辑器也需要一个url参数action,所以需要把ueditor.all.min.js里面的get,post的action=改个名字,不如saction=

后台接收到图片,就用流式上传直接上传图片流,图片流上传查看:

https://blog.youkuaiyun.com/tang05709/article/details/88366824

def editor_upload 
      res = nil
      act = params[:saction]
      case act
      when 'config'
        res = up_config
      when 'upload_image'
        upfile = params[:upfile]
        ext = File.extname(upfile.original_filename)
        file_name = Tools::GetRandString.date_rand_string(16) +  ext
        file_key = 'details_upload/' + file_name
        Aliyun::AliyunOssAchieve.upload_by_io(file_key, upfile.read)
        url = Rails.configuration.application['ALIYUN_OSS_HOST'] + '/' + file_key
        res = {
          "state": "SUCCESS",
          "url": url,
          "title": file_name,
          "original": file_name,
        }
      when 'upload_video'
        res = {
          state: '不支持使用编辑器上传视频'
        }
      when 'catch_image'
        res = {
          state: '不支持使用编辑器上传视频'
        }
      else
        res = {
          state: '请求错误'
        }
      end

      render json: res
    end

    def delete_image
      Aliyun::AliyunOssAchieve.delete_oss(params[:filename])
      render json: {'status': 'success'}
    end

    private 

    def up_config
       config = {
         "imageActionName" => "upload_image", # 执行上传图片的act名称 
          "imageFieldName" => "upfile", # 提交的图片表单名称 
          "imageMaxSize" => 2048000, # 上传大小限制,单位B 
          "imageAllowFiles" => [".png", ".jpg", ".jpeg", ".gif", ".svg"], # 上传图片格式显示 
          "imageInsertAlign" => "none", # 插入的图片浮动方式 
          "imageUrlPrefix" => "", # 图片访问路径前缀 

          "catcherLocalDomain" => ["127.0.0.1", "localhost", "www.sonliss.com"],
          "catcherActionName" => "catch_image", # 执行抓取远程图片的action名称 
          "catcherFieldName" => "source", # 提交的图片列表表单名称
          "catcherUrlPrefix" => "", # 图片访问路径前缀 
          "catcherMaxSize" => 2048000, # 上传大小限制,单位B 
          "catcherAllowFiles" => [".png", ".jpg", ".jpeg", ".gif", ".bmp"], # 抓取图片格式显示 

          "videoActionName" => "upload_video", # 执行上传视频的action名称 
          "videoFieldName" => "upfile", # 提交的视频表单名称 
          "videoUrlPrefix" => "", # 视频访问路径前缀 
          "videoMaxSize" => 102400000, # 上传大小限制,单位B,默认100MB 
          "videoAllowFiles" => [".flv", ".3gp", ".mpeg", ".mp4"], # 上传视频格式显示 
      }
    end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值