我在使用rails和carrierwave将图像上传到mongodb时遇到问题。这是我收到的错误消息无法将类ActionDispatch::Http::UploadedFile的对象序列化为BSON。我的模型是这样的classOfferincludeMongoid::DocumentincludeMongoid::Timestampsfield:name,:type=>Stringfield:desc,:type=>Stringfield:expiry,:type=>Datehas_one:image,as::viewableembeds_many:locations,as::loca
所以我有一个非常直接的用于图像上传的Carrierwave实现。我已将uploader安装在ActiveRecord模型上:classMenuItem我使用的表单结合了编辑/创建上述MenuItem以及附加文件:"photo"%>@menuitem.active%>在编辑/更新的情况下,一切正常。但是,在New/Create上,我在:photo属性上收到验证错误,它只是说“照片无效”。上传者定义是普通的:classPhotoUploader100,:width=>100})sf.add_save("thumbnail",key,ENV['S3_BUCKET'])bs=Blitline.
我需要在一些验证功能后挂载图片uploader。但是如果我像往常一样在模型中调用安装uploader:mount_uploader:content,ContentUploadercarrierwave先下载内容,然后Rails开始验证模型。具体来说,我根本不想加载大文件!我想检查httpheaderContent-length和Content-type然后,如果没问题,挂载uploader。也许是这样的:ifconditionmount_uploader:content,ContentUploaderend我该怎么做?附言Rails版本3.2.12 最佳答案
我在我的Carrierwaveuploader上引入了一个新版本。当我创建一个新的Event时,它会正确创建两个版本。但是当我更新它时,只会上传我附加的文件,但不会重新创建版本。我正在使用CarrierWave1.2.2,并且查看更新日志,它似乎不是在较新版本中修复的错误classCoverUploader 最佳答案 @ogelacinyc在full_filename中发现错误时部分正确。我回去测试正常功能,创建另一个版本,并进行简单的尺寸更改。然后我可以看到更新将自行重新创建版本,就像我预期的那样。这让我觉得我的version:o
我要上传文件并为其转换缩略图。我的代码是:require'streamio-ffmpeg'moduleCarrierWavemoduleFFMPEGmoduleClassMethodsdefresample(bitrate)process:resample=>bitrateenddefgen_video_thumb(width,height)process:gen_video_thumb=>[width,height]endend#defis_video?#::FFMPEG::Movie.new(File.open(store_path)).frame_rate!=nil#enddef
我有Image模型和Movie模型,Movie可以有很多images。我正在存储图像的3个版本,大、中和小。在我的应用程序中,用户可以选择特定尺寸的图像,比如4张“中等”尺寸的图像,然后用户可以分享它们。最少3张图片,最多5张。我需要用所有选定的4张中等大小的图片创建一张图片。我不想单独发送这些图像,我想将其作为单个图像发送。我正在使用Carrierwave和MiniMagick。感谢您的帮助! 最佳答案 假设这里真正的问题是关于使用minimagick合成图像,这里有一些代码。请注意,我已经向Movie添加了一个名为“compos
嘿。我一直在尝试从我使用MiniMagick通过Carrierwave上传的图像中获取一些EXIF数据。我已经进行了相当广泛的搜索,试图找出答案,但我找不到任何相关的东西。任何人都知道如何?谢谢! 最佳答案 想通了。以下代码块将向Carrierwaveuploader添加方法get_exifdefget_exif(name)manipulate!do|img|returnimg["EXIF:"+name]endend只需将EXIF名称(例如“DateTimeOriginal”)传递给它,它就会返回数据。但是要记住的一件事是,如果您将
如何让CarrierWave为文件名添加正确的扩展名关于它的内容?例如,如果我上传文件“logo”(PNG文件没有扩展名)CarrierWave应将其保存为“logo.png”。并且文件“img.gif”(扩展名不正确的JPG文件)分别保存为“img.jpg”。 最佳答案 您可以做几件事,具体取决于您使用的是process还是version来执行此操作。如果是版本,carrierwavewiki有办法做有条件的版本。https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Do-c
我正在使用载波上传图片。在上传时,我正在为图像创建缩略图,这是使用Rmagick方法完成的,resize_to_fill如下所示。version:thumbdoprocess:resize_to_fill=>[150,150]end这里是所有RMagick方法的输出carrierwavesupports(我都不想要)::resize_to_fill=>[150,150]这适用于较大的图像,但我的较小图像被放大到150x150。:resize_to_fit=>[150,150]再次调整大小,我希望它保持原状!:resize_to_limit=>[150,150]这个保持原样,但没有裁剪较
我正在尝试让Carrierwave与我的AmazonS3存储桶一起使用,但我有点不走运。在我的config/initializers文件夹中,我有一个名为carrierwave.rb的文件。该文件包含以下内容:CarrierWave.configuredo|config|config.fog_credentials={:provider=>'AWS',:aws_access_key_id=>ENV['AWS_ACCESS_KEY_ID'],:aws_secret_access_key=>ENV['AWS_SECRET_ACCESS_KEY']}config.cache_dir="#{R