Tag: 文件

检查Minimagick高度冻结控制台

我正在使用Rails和MiniMagick,并且我已经通过file_field和MiniMagick::Image.read(image.read)上传了这个obj: => #<MiniMagick::Image:0x007feb61ac7048 @info=#, @path=”/var/folders/s5/0r70nfzn2cj74qmc90ry3kc80000gp/T/mini_magick20170608-62480-1kxoub0″, @tempfile=#> 我想用image[‘height’]查看对象的高度,但每当我完成时我的命令行会冻结,或者我得到No live threads left. Deadlock? No live threads left. Deadlock? 。 如果我让程序运行而没有我得到的调试器 `identify -format %m %w %h %b /var/folders/s5/0r70nfzn2cj74qmc90ry3kc80000gp/T/mini_magick20170608-62480-v5agnm[0]` failed with error: identify: no decode delegate for this image format `’ @ error/constitute.c/ReadImage/509. 我试过加入 MiniMagick.configure do |config| config.validate_on_create = false config.validate_on_write = false end 但它没有帮助。

Rails file_field大小限制

我目前有上面的图片上传,但我还想添加一个限制,阻止用户上传任何height低于50px文件。 这可能吗? file_field “form”, “image”, accept: ‘image/png,image/gif,image/jpeg’

在Rails中保存video文件

好的,所以我过去使用过paperclip上传图片和video。 我在想。 有没有一种简单的方法可以在rails中保存video? 我已经找到了上传文件的表格,我想知道是否有某种类型我应该保存它。 (显然不是字符串,而是沿着这些线。)我只想拥有一个包含所有三种文件类型的video播放器。 (ogg,mp4,wav)。 只是每个人都保存在数据库中自己的行中。

通过rails应用程序公开服务中的文件

我有一个rails应用程序,生成开放的办公室文件,我有一个服务在另一个位置,将这些开放的office文件转换为microsoft office文件。 我想要一个控制器操作,将打开的office文件发送到转换器,然后将返回的microsoft office文件提供给用户。 我怎么能这样做? -C

是否有rails方法来遍历上传文件的每一行? “each_line”是一种IO方法,但它不起作用

我正在尝试上传一个csv文件,解析它,并为S3吐出一个文件或者只是传递给查看。 我使用file_field_tag上传csv。 我认为file_field_tag传递一个对象,该对象是IO的子类,并且将具有所有ruby IO方法,例如“each_line”。 我可以在对象(IO类的方法)上调用“read”而不是“each_line”…所以如何迭代file_field_tag上传的每一行? 创建我的控制器的方法: @csv_file = params[:csv_file] 我的show view会抛出一个没有“each_line”方法的错误: 但我可以使用 我真的很困惑file_field_tag上传params []有哪些方法… each_line,得到不起作用……我似乎无法找到我可以使用的列表。 编辑我通过这样做来解决这个问题: @csv_file = params[:csv_file].read.to_s 然后迭代: 编辑2正在上传的文件在不包含逗号的行后重复标题(不要问)…所以我找到没有逗号的行并调用.gets(在我的rb脚本中独立于rails)。 不幸的是我得到一个错误,关于获取我无法调用的私有方法。 这可以追溯到我最初的问题。 使用IO方法(例如read_lines&gets),文件不是IO的子类吗? @file_out = [] @file_in.each_line do |line| case line when /^[^,]+$/ @comp = line.to_s.strip comp_header = @file_in.gets.strip.split(”) @file_out.push(@comp) end end

从rails返回文件

初学者问题: 如何从rails中的控制器返回文件? 我熟悉返回/渲染JSON对象。 但是我从来没有返回/渲染过具有任意扩展名的文件。 从阅读SO来看,它听起来像render :nothing => true可以帮助。 我只是在寻找一些指导或相关文档。

具有恢复能力的文件上传(最好在Ruby on Rails中)

所有人都认为这是一个相当困难的话题。 我正在建立一个网站,要求用户上传大(多GB)。 允许用户在网站上传文件并允许文件上传失败的最佳方式是什么? 在rails中写这个的方法是什么? 任何想法都非常感激。 最大。

Rails:send_file永远不会呈现页面或DoubleRender错误

所以我试图在购买PayPal后触发下载。 所以我做的第一种方法是将任何错误重定向到错误页面。 除了在发送罚款后永远不会呈现结果页面之外,这一切都有效。 如果我尝试显式渲染页面,我会得到DoubleRender错误。 所以我对失去的正确事情感到失望: 我有一个名为getapk.erb的页面,并在其控制器中包含getfile代码。 如果我遇到错误,我会重定向到pperror.erb 所以我没有重定向到错误页面,而是在页面上的if?

来自csv.read模拟文件的rspec测试结果

我正在使用ruby 1.9而我正在尝试做BDD。 我的第一个测试“应该在csv中读取”,但是第二个我需要模拟文件对象的测试却没有。 这是我的型号规格: require ‘spec_helper’ describe Person do describe “Importing data” do let(:person) { Person.new } let(:data) { “title\tsurname\tfirstname\t\rtitle2\tsurname2\tfirstname2\t\r”} let(:result) {[[“title”,”surname”,”firstname”],[“title2″,”surname2″,”firstname2”]] } it “should read in the csv” do CSV.should_receive(:read). with(“filename”, :row_sep => “\r”, :col_sep => “\t”) person.import(“filename”) end it “should have result” do filename = mock(File, :exists? => true, :read => data) person.import(filename).should […]

如何更新/重命名carrierwave上传的文件?

我无法弄清楚如何在rails 3.2.6中更新/重命名使用Carrierwave-mongoid上传/管理的文件。 我想重命名数据库中的文件以及文件系统。 这样的事可能…… def rename( id , new_name ) f = UploadedFile.find(id) if f.update_attributes({ f.file.original_filename: new_name }) # this is WRONG, what is right??? new_path = File.join( File.dirname( f.file.current_path ) , new_name )) FileUtils.mv( f.file.current_path , new_path ) end return f end 让我添加它是在它已经上传之后。