我在这个Rails教程中使用了带有JQuery Upload的Rails Carrier Wave ,但是在按下Upload 按钮时出现错误:
Error: SyntaxError: JSON.parse
任何建议/建议都非常有用。
为什么不尝试Uploadify?
添加gem 'carrier_wave'
到您的Gemfile。
将此代码保存到/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
end
end
编辑session_store.rb
此代码并将其添加到文件末尾:
Rails.application.config.middleware.insert_before(
ActionDispatch::Session::CookieStore,
FlashSessionCookieMiddleware,
Rails.application.config.session_options[:key]
)
下载Uploadify并解压缩。
jquery.uploadify.v2.1.4.min.js
并swfobject.js
以 /app/assets/javascripts
如果您使用的Rails 3.1或更高版本; 到 /public/javascripts
如果使用的Rails 3.0或更早版本。uploadify.swf
和复制cancel.png
到/app/assets/images/
或 /public/images
。uploadify.css
到/app/assets/stylesheets/
或 /public/stylesheets
。编辑您的application.js并在下面插入:
//= require swfobject
//= require jquery.uploadify
在您的上传页面中,添加以下内容:
<input id="uploadify" name="uploadify" type="file"/>
将此代码添加到您的上传脚本中:
$(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] = encodeURI(encodeURIComponent(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) {
}
});
});
像这样编写控制器:
def create
@photo = Photo.new image: params[:file_data]
@photo.save
end
注意: 已使用Uploadify 2.1.4进行了测试。
我正在使用RMagick gem制作一个rails应用程序,将图像转换为动画gif。有< code>Post模型,其中< code >有_many post_attachments和< code >有_one post_output。这个想法是用户可以上传多张图片,然后重定向到一个带有动画gif的页面。我在通过carrierwave、AWS S3和fog将gif附加到post_output(它有一
问题内容: 我希望能够使用远程链接从Rails调用文件下载。我的链接正常工作,看起来像这样: 响应中包含正确的文件,但是当响应进入时,下载对话框不会出现。是否可以调用下载对话框?我需要这个才能在IE和Firefox中工作 谢谢, -C 问题答案: ParticleTree的一篇文章提到了一个简单有效的解决方案, 它根本不涉及AJAX ,但是 确实导致文件下载 而用户无需离开当前页面: 这并不能直接
我的机器使用Rails 5。因为一些业务,我必须创建新的rails 4应用程序。我使用以下语法生成rails 4应用程序: 然而,新的应用程序结构是为rails 5构建的。我的问题是:我如何使用rails 5来生成rails 4结构应用程序。 谢谢
问题内容: 有没有一种方法可以制作带有Turbo链接的Youtube样式加载栏(顶部栏之间的页面)。 Turbolinks包含许多不同的回调,因此您可以跨几个步骤快速跳转,但是否也有办法了解进度? 问题答案: nprogress-rails可能正是您需要的。
问题内容: 我希望使用find在rails控制器中编写此SQL查询: 我该怎么做?我正在使用Rails框架和MySQL。提前致谢。 问题答案: 简单方法: 一枪:
问题内容: 我试图用来返回一个PNG图像作为对ajax发布请求的响应。如何让浏览器触发成功回调上的下载? 细节 我正在使用生成一个大型的base64图像,然后将其发布到Rails(v3.2.6)。Rails将其解码为二进制PNG,然后将图像发送回客户端。 我也尝试过,但是有同样的问题。 其他选择 下载图片客户端: 我们无法这样做,因为(1)Safari在大型base64 URL上崩溃,并且(2)S