使用JQuery Uploader的Rails载波

使用JQuery Uploader的Rails载波,第1张

使用JQuery Uploader的Rails载波

为什么不尝试Uploadify?

第1步

添加

gem 'carrier_wave'
到您的Gemfile。

第2步

将此代码保存到

/lib/flash_session_cookie_middleware.rb

require 'rack/utils'class FlashSessioncookieMiddleware  def initialize app, session_key = '_session_id'    @app = app    @session_key = session_key  end  def call env    if env['HTTP_USER_AGENT'] =~ /^(Adobe|Shockwave) Flash/      request = Rack::Request.new env      env['HTTP_cookie'] = [@session_key, request.params[@session_key]].join('=').freeze unless request.params[@session_key].nil?      env['HTTP_ACCEPT'] = "#{request.params['_http_accept']}".freeze unless request.params['_http_accept'].nil?    end    @app.call env  endend
第三步

编辑

session_store.rb
此代码并将其添加到文件末尾:

Rails.application.config.middleware.insert_before(  ActionDispatch::Session::cookieStore,  FlashSessioncookieMiddleware,  Rails.application.config.session_options[:key])
第4步

下载Uploadify并解压缩。

第5步
  1. 复制
    jquery.uploadify.v2.1.4.min.js
    swfobject.js
    /app/assets/javascripts
    如果您使用的Rails 3.1或更高版本; 到
    /public/javascripts
    如果使用的Rails 3.0或更早版本。
  2. uploadify.swf
    复制
    cancel.png
    /app/assets/images/
    /public/images
  3. 复制
    uploadify.css
    /app/assets/stylesheets/
    /public/stylesheets
第6步

编辑您的application.js并在下面插入:

//= require swfobject//= require jquery.uploadify
步骤7

在您的上传页面中,添加以下内容:

<input id="uploadify" name="uploadify" type="file"/>
步骤8

将此代码添加到您的上传脚本中:

$(document).ready(function() {  <% key = Rails.application.config.session_options[:key] %>  var uploadify_script_data = {};  var csrf_param = $('meta[name=csrf-param]').attr('content');  var csrf_token = $('meta[name=csrf-token]').attr('content');  uploadify_script_data[csrf_param] = enpreURI(enpreURIComponent(csrf_token));  uploadify_script_data['<%= key %>'] = '<%= cookies[key] %>';  $('#uploadify').uploadify({    uploader        : '/assets/uploadify.swf',    script          : '/photos',    cancelImg       : '/images/cancel.png',    auto : true,    multi: true,    removeCompleted     : true,    scriptdata: uploadify_script_data,    onComplete      : function(event, ID, fileObj, doc, data) {    }  });});
步骤9

像这样编写控制器:

def create  @photo = Photo.new image: params[:file_data]  @photo.saveend

注意: 已使用Uploadify 2.1.4进行了测试。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5615308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存