- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
", :thumb =>-6ren">
请帮助解决问题。
我使用回形针组织上传图片。有用。
现在我想组织一个视频上传。我改变了这个模型:
模型:
class Video < ActiveRecord::Base
validates :title, presence: true
validates :video, presence: true
belongs_to :user
has_attached_file :video,
:styles => { :medium => "300x300>", :thumb => "100x100>" },
:default_url => "/images/:style/missing.png"
validates_attachment_content_type :video, :content_type => /\Avideo\/.*\Z/
validates_attachment_file_name :video, :matches => [/3gp\Z/, /mp4\Z/, /flv\Z/]
validate :file_size_validation, :if => "video?"
def file_size_validation
errors[:video] << "should be less than 2MB" if video.size.to_i > 30.megabytes
end
end
def create
@video = Video.new(video_params)
if @video.save
@video.update_attributes(user: current_user)
flash[:success] = :video_created
redirect_to @video
else
flash.now[:error] = :user_not_created
render 'new'
end
end
<%= form_for(@video) do |f| %>
<%= f.text_field :title %>
<%= f.file_field :video %>
<%= f.submit %>
<% end %>
Started POST "/videos" for 127.0.0.1 at 2015-07-23 14:17:32 +0300
Processing by VideosController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"RF3w8PzZ9LZ4pdqRPqRvHMQ+nYDL4om0YHAMlzTm8tf3iFmVmKxXSYKap3C0ogEnOkifm9i01oXs/rTX9zmtPA==", "video"=>{"title"=>"tty", "video"=>#<ActionDispatch::Http::UploadedFile:0x007f6624f10770 @tempfile=#<Tempfile:/tmp/RackMultipart20150723-13428-u7s8i8.flv>, @original_filename="mmm.flv", @content_type="video/x-flv", @headers="Content-Disposition: form-data; name=\"video[video]\"; filename=\"mmm.flv\"\r\nContent-Type: video/x-flv\r\n">}, "commit"=>"Create Video"}
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["id", 8]]
Command :: file -b --mime '/tmp/c4efd5020cb49b9d3257ffa0fbccc0ae20150723-13428-6gn39i.flv'
Command :: identify -format '%wx%h,%[exif:orientation]' '/tmp/c4efd5020cb49b9d3257ffa0fbccc0ae20150723-13428-1eailfd.flv[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError>
Command :: identify -format '%wx%h,%[exif:orientation]' '/tmp/c4efd5020cb49b9d3257ffa0fbccc0ae20150723-13428-1eailfd.flv[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError>
(0.2ms) BEGIN
Command :: file -b --mime '/tmp/c4efd5020cb49b9d3257ffa0fbccc0ae20150723-13428-khstwa.flv'
(0.2ms) ROLLBACK
Video Paperclip::Errors::NotIdentifiedByImageMagickError
sudo apt-get install imagemagick
create_table "videos", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "title"
t.integer "user_id"
t.string "video_file_size"
t.string "video_updated_at"
t.string "video_file_name"
t.string "video_content_type"
end
最佳答案
与 image
合作与 paperclip
并与 video
是不同的。虽然共同点是它会帮助你将上传的数据发送到服务器,但你需要用一些处理器来处理它。就像你使用ImageMagick
一样。为 images
, 你应该使用 FFMPEG
至 encode/decode video
.
我将分享我通常用于视频的代码..但在此之前,您必须设置ffmpeg
像处理 Imagemagick
一样处理所有格式的视频.
here 为 ffmpeg 设置,不要忘记使用 which ffmpeg
在环境文件中提供路径
您需要 ffmpeg-paperclip 以及编码/解码视频。
video.rb
##using s3
##convert the video into mp4 and also get screenshot of video at 5 sec
##add your own formats that you want
has_attached_file :video,
:styles => {
:mp4video => { :geometry => '520x390', :format => 'mp4',
:convert_options => { :output => { :vcodec => 'libx264',
:vpre => 'ipod640', :b => '250k', :bt => '50k',
:acodec => 'libfaac', :ab => '56k', :ac => 2 } } },
:preview => { :geometry => '300x300>', :format => 'jpg', :time => 5 }
},
processors: [:ffmpeg],
:storage => :s3,
:size => { :in => 0..25.megabytes },
:s3_permissions => :public_read,
:s3_credentials => S3_CREDENTIALS
validates_attachment_content_type :video, :content_type => /\Avideo\/.*\Z/
validates_presence_of :video
show
中显示视频播放器和您的视频。行动。您可以使用
Mediaelement.js (我最喜欢的)。下载它,相应地将其转储到 js/css 文件中,将其包含在 application.js 和 application.css 中。
in your show.html.erb
##add video tag to show video
<video autobuffer="autobuffer" preload="auto" style="width:100%;height:100%;" controls="controls" width="100%" height="100%" poster="<%= @video.video.url(:preview)%>" >
<source src="<%= @video.video.url%>" />
<%if @video.video.expiring_url(:mp4video).present? %>
<source type="video/mp4" src="<%= @video.video.url(:mp4video)%>" />
<%end%>
</video>
##javascript to handle video player
$('video').mediaelementplayer();
关于ruby-on-rails - 如何使用 paperclip-Rails 加载和验证视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31586069/
我正在使用带有导轨的回形针并且它工作正常,但是我的问题是更新时如果我不重新选择图像,那么它会将记录保存为 nil。这是我的代码: 'avatar', :class => 'thumb
我正在使用带有 ImageMagick 的 Paperclip 来处理几千张图像并将它们上传到 S3。它通过了数百张图像而没有出现问题,然后出现以下错误: An error was received
我已经将 rails 应用程序部署到 heroku,在我更改域之前它运行良好,在本地运行正常,现在我开始收到以下错误:Paperclip::Errors::MissingRequiredValidat
我正在使用 Paperclip 和 paperclip-ffmpeg 来处理上传。下面是我的代码 Assets 类 { :mobile => {:geometry => "400x300
我是编程新手,我正在尝试使用回形针将用户照片添加到我的用户记录中。可以从没有 行的添加新记录表单创建记录,并正确重定向并将记录保存到数据库。但是,当它包含在保存时,它想重定向到 create.htm
我刚刚在带有 rails 3.2.9 的 Ubuntu 上安装了回形针,但无法上传图像。 我得到的消息是未初始化的常量 Paperclip::Storage::Fog::Excon。 对此有什么解释吗
我在使用 mod_rails 将我的应用程序部署到运行 ubuntu 的服务器时遇到了麻烦。在服务器上运行 webrick 似乎很好,我可以保存文件,没问题。但是通过 nginx 运行应用程序,当我尝
我最近安装了回形针 gem,要将它与 Amazon S3 一起使用,我需要更改初始化程序,但我在 config/initializers 中看不到它。如何创建它?/找到它? 最佳答案 如果 paper
最近我将我的 Rails 版本从 3.2 迁移到 4.2.6,同时我修改了一些 gem,例如回形针 2.3 到 4.3.6。当我运行 rails server 时,我得到以下弃用: DEPRECATI
我正在尝试为使用 Rails 作为后端的应用程序编写一个 API,该应用程序显示膳食列表。每个餐点都显示名称和照片。对于 API,我试图返回一个 JSON 数组,其中包含与膳食模型关联的所有照片 ur
我有一些珍贵的代码可以压缩大量文件,它在 tmp 文件系统中创建了一个 zip 文件并向其中添加了文件。 我试图通过使用 ruby 的 Tempfile 将文件存储在代码中而不是自己手动将其写入
当我尝试提交表单时,出现以下错误:Validation failed: Images imageable must exist并渲染相同的 new.html.erb看法。 如果我评论 file fie
我在我的应用程序中使用 Paperclip 和 Imagemagick,使用 Amazon S3 进行存储。在开发中一切正常。但在 Heroku 的生产环境中,它无法正常工作。 图像被上传到 Amaz
我有一个带回形针的 Rails 3 应用程序。如果附件是图片,并且图片的宽度或高度小于 100,我想跳过保存。 模型中有以下内容: validate :file_dimensions, :unle
使用 Paperclip,我想从这样的 URL 抓取图像: require 'open-uri' user.photo = open(url) 问题是我最后得到一个像“open-uri20110915
我正在尝试跳过 PaperClip处理我的音乐是否已被删除。 基本上,当我上传音乐时,如果出现问题,我想销毁上传文件的每一部分。此操作由 ffmpeg 延迟并完成.另一个任务被延迟到附加图片到我的音乐
我使用回形针来调整图片的大小,如下所示: class Asset { :thumb => "80x80#", :me
我正在使用 Paperclip 通过 S3 存储图像。据我了解,Paperclip 会将一个字符串(时间戳)附加到图像的末尾以用于缓存目的。你知道他们用什么方法来创建字符串吗?我需要使用 .js 重建
我正在使用 Thoughtbot 的 Paperclip gem处理文件上传。 我发现当我上传文件名中包含空格的文件时,它会被存储为空格替换为下划线。 那挺好的。 我还尝试上传带有特殊字符的文件,例如
rails 3.0 应用程序位于使用 apache/passenger 的 ubuntu 服务器上。部署app的用户是admin,也是运行app的用户(没选名字,admin没有root权限)。我今天又
我是一名优秀的程序员,十分优秀!