`

利用paperclip实现kindEditoer的图片上传和浏览

阅读更多

 

KindEditor是一款优秀的开源HTML编辑器, 它的图片上传和浏览是利用插件的方式进行的。编辑器的参数中imageUploadJson定义了图片上传的后台程序地址, allowFileManager 定义了是否允许浏览服务器图片,fileManagerJson指定了浏览图片时后台程序地址。以下代码根据个人情况应该有所不同。

 

 写道

{"error":1, "url":"URL"}图片上传成功返回的字符串
{"error":0} 上传失败返回的字符串
 下面是KindEditor Demo里面后台地址返回的json字符串。图片浏览是通过plugins/file_manager/file_manager.js来解析服务器端返回的json字符串的。

 

由于我们的图片是通过paperclip来进行上传处理的,因此图片都是以一定格式比如/datas/:id/:style存放,而kindeditor的Demo中图片时存在在一个文件夹里的。通过阅读这个js文件,发现在服务器在返回时把图片的路径设置在dir_path里就可以一次返回不同文件夹里的图片。把moveup_dir_path、current_dir_path、current_url、total_count这几个参数也基本没有用处,可以直接54。我们直接返回需要用到的filename, filesize, dir_path和datetime就可以了,代码见下面。

 写道
{"moveup_dir_path":"","current_dir_path":"","current_url":"\/ke\/php\/..\/attached\/",
"total_count":5,"file_list":[{"is_dir":false,"has_file":false,"filesize":208736,
"dir_path":"","is_photo":true,"filetype":"jpg",
"filename":"1241601537255682809.jpg","datetime":"2009-12-10 09:18:36"}]}

 upload为访问imageUploadJson所定义的程序地址后台调用action,同理images_list为fileManagerJson所定义后台action,应根据个人配置做相应的调整。

#model
class Image < ActiveRecord::Base   has_attached_file :data :style=>{:medium =>"300x300>", :thumb => "100x100>"}
end

#controller
class Admin::ImagesController < Admin::BaseController
   protect_from_forgery :except => :upload
  def upload
    @image = Image.new(:data => params[:imgFile])
    if @image.save
      render :text => {"error" => 0, "url" => @image.data_url(:medium)}.to_json
    else
      render  :text => {"error" => 1}
    end
  end

  def images_list
    @images = Image.all
    @json = []
    for image in @images
      temp =  %Q/{"filesize" : #{image.data_size},
                 "filename" : "#{image.filename}",
                 "dir_path" : "#{image.data_url(:small)}",
                 "datetime" : "#{image.created_at}"}/
      @json << temp     end     render :text => ("{\"file_list\":[" << @json.join(", ") << "]}")
  end
end

#plugins/file_manager/file_manager.js
#createView 以缩略图形式创建试图
#createList 以列表形式创建视图
#var fileUrl = result.current_url + data.filename; fileUrl为缩略图的地址,我们不返回current_url,因为替换如下
var fileUrl = result.dir_path
#无is_dir和is_photo返回,因为只是返回单一图片,可以直接设置
#var iconUrl = data.is_dir ? './images/folder-64.gif' : (data.is_photo ? fileUrl : './images/file-64.gif');
iconUrl = fileUrl
 

 

2
0
分享到:
评论

相关推荐

    paperclip模板

    Paperclip - Responsive Professional Theme for Business Projects and Mobile Apps Perfect for business and personal use Built with LESS Looks great on all major browsers, tablets and phones 21 unique ...

    rails上传文件_paperclip

    NULL 博文链接:https://mylir.iteye.com/blog/800734

    paperclip-optimizer:缩小回形针图像上传

    可以在以下位置找到Paperclip以及PaperclipOptimizer的保养好的货叉: PaperclipOptimizer是一个处理器,用于优化和缩小上传的图像。 这仅仅是围绕一个瘦包装 ,它支持许多外部优化库如 , , , , , , , , ,...

    paperclip-av-transcoder, 使用 ffmpeg/avconv的Paperclip 音频/视频转码器.zip

    paperclip-av-transcoder, 使用 ffmpeg/avconv的Paperclip 音频/视频转码器 Paperclip 转码器使用 ffmpeg/avconv的Paperclip 音频/视频转码器。这是( https://github.com/owahab/paperclip-ffmpeg )的替代品。状态

    paperclip

    回形针 回形针旨在用作ActiveRecord的简单文件附件库。 其目的是使设置尽可能简单,并尽可能将文件与其他属性一样对待。 这意味着它们不会保存到磁盘上的... Paperclip现在需要Ruby版本&gt; = 2.0.0和Rails版本3.2,&gt; =

    paperclip_torrent:生成一个.torrent文件以补充您的回形针上传

    gem 'paperclip_torrent', github: "fattymiller/paperclip_torrent" 在模型中,正常设置has_attached_files ,包括:torrentify处理器,如下所示: has_attached_file :attachment, { styles: { audio_128kbps_...

    paperclipfans:Hi〜这里是回形针PaperClip非官方的资料整理仓库,我们迫切的希望您的帮助整理,这将加速我们的网站维护每一期的文字稿及图片内容

    氦,这里是回形针PaperClip内容收录仓库,你可以在这里找到往期节目的相关内容。 使用 在线浏览 目前,我们有以下站点供您在线浏览本仓库的内容。 GitHub页面 该站点由GitHub Actions自动构建并部署在GitHub Pages...

    Rails的文件附件扩展Paperclip.zip

    Paperclip 是 Rails 框架的一个插件,用于扩展 ActiveRecord 以支持简单的文件附件的功能。 标签:Paperclip

    paperclip-s3-tutorial-korean:回形针文件上传到 s3 韩文

    回形针上传到 S3 要求 aws-sdk 回形针 宝石安装 Gemfile gem ' aws-sdk ' gem ' paperclip ' 并运行 bundle install 创建 s3 这里 设置s3信息 从获取访问密钥和秘密密钥并将它们写好。 然后创建一个config/aws....

    paperclip_watermark:回形针处理器在图像上应用水印

    回形针水印描述这是一个简单的 Paperclip 处理器,用于在 Paperclip 的图像上应用水印。 水印将调整大小以适合基本图像。 很少有选项可用于指定位置和不透明度: watermark_distance_from_top : 以百分比指定从顶部...

    paperclip-storage-encrypted_filesystem:使用常规文件系统存储提供程序和 ActiveRecord 通过自动附件加密扩展 Paperclip

    这个 gem 使用常规文件系统存储提供程序和 ActiveRecord 通过自动附件加密扩展了 Paperclip。 安装 将此行添加到应用程序的 Gemfile 中: gem 'paperclip-storage-encrypted_filesystem', git: '...

    paperclip-example:在 Rails 4.0.0 中使用 Paperclip 和 S3 的示例

    在 Rails 4.0.0 上运行带有 AWS S3 演示的 Paperclip 教程这是一个教程和演示,用于获取在 Rails 4.0.0 上运行的带有 AWS S3 上传的 Paperclip。 在本教程中,我们将创建一个简单的站点,可以在其中创建文章并可以将...

    paperclip-s3:未维护

    每一个当您将应用程序部署到,您正在更改RAILS_ROOT,因此您所有上传的文件都将丢失,您的存储桶将一团糟! 默认的Heroku工作路径是默认路径。 如何使用 使用以下命令将宝石添加到您的Gemfile中 gem “paperclip-...

    1.12.2paperclip.jar

    大家对服务端应该都不陌生了,我就不多介绍了,主要是点击server.jre,需要用JAVA8 64位运行,然后稍等一会,会生成mod文件夹,运行配置同意elua协议就可以开服务器了

    1.16.5-paperclip.jar

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...

    mongoid-paperclip:蒙古族

    设定宝石文件gem "mongoid-paperclip" 接下来,假设我们有一个用户模型,并且我们希望允许我们的用户上传头像。 Rails.root / app / models / user.rb-包含Mongoid :: Paperclip模块并调用提供的类方法class User ...

    administrate-field-paperclip:用于管理的回形针字段插件

    将administrate-field-paperclip clipclip和kt-paperclip paperclip添加到您的Gemfile中: gem 'administrate-field-paperclip' gem 'kt-paperclip' 安装: $ bundle install 用法 按照上的开始使用模型和迁移。...

    dm-paperclip:Thoughtbot的Paperclip插件的DataMapper端口

    DM-Paperclip是Thoughtbot的Paperclip插件的端口,可与DataMapper一起使用。 该插件与原始的面向ActiveRecord的回形针完全兼容。 您可以采用现有的ActiveRecord数据库并将其与DataMapper一起使用。 该模块还包括...

    paperclip_database_attachments_responder:对 paperclip_database gem 的扩展

    综合解决方案请查看我的paperclip_database分支,并将此解决方案集成到:。安装由于 PaperclipDatabaseAttachmentsResponder 覆盖了 paperclip_database 的内部 api,因此使用精确的'2.2.1'版本。 将这些行放入您的...

    sugarcane-paperclip-b50.jar

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...

Global site tag (gtag.js) - Google Analytics