标签: paperclip

rails - Paperclip文件名

使用带有Paperclip的rails,我可以使用以下命令在before_create期间获取文件名:

extension = File.extname(photo_file_name).downcase

我如何得到JUST文件名..现在我有photo_file_name提供整个文件,titlename.pdf

我需要没有.pdf的titlename

谢谢

使用代码更新:

photo.rb:

  before_create :obfuscate_file_name

  #Paperclip for photo
  has_attached_file :photo,
......


private

  def obfuscate_file_name
    extension = File.extname(photo_file_name).downcase
    fileNameOnly = File.basename(photo_file_name).downcase
    self.photo.instance_write(:file_name, "#{fileNameOnly}_#{ActiveSupport::SecureRandom.hex(32)}#{extension}")
  end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails paperclip ruby-on-rails-3

16
推荐指数
3
解决办法
2万
查看次数

如何进行涉及Paperclip的Rails迁移

人们如何编写涉及Paperclip的Rails迁移?我觉得我可能会遗漏一些明显的东西,因为我现在已经编写了自己的迁移助手黑客,这使得它变得更容易并且还可以处理必要的文件系统更改.当然,您应该在部署到生产之前在开发(和临时)环境中测试运行这些类型的迁移.

Paperclip迁移重命名,添加和删除帮助器
Paperclip更改路径迁移帮助程序(不是真正的数据库迁移,但认为它非常适合)

有没有更好的解决方案或最佳实践?有些人似乎创造了耙子任务等,感觉非常麻烦.

ruby-on-rails paperclip rails-migrations

16
推荐指数
1
解决办法
2万
查看次数

Paperclip S3 - 可以上传图像但无法查看图像

我创建了一个在Heroku上运行的Rails应用程序,包括Paperclip和S3.我已经设法通过网站将图像上传到我的S3存储桶(我可以看到它们显示在亚马逊控制面板上的存储桶中).

但是当我添加一个Image标签即<%= image_tag x.photo.url%>时,我得到以下html(这里省略了标签),没有显示图像!

img alt ="Test_tree"src ="http://s3.amazonaws.com/hiphotos/ads/photos/000/000/015/original/test_tree.jpg?1344661020"

请帮忙!为什么我不能看到图像,即使它们在桶中?

非常感谢你们

amazon ruby-on-rails heroku amazon-s3 paperclip

16
推荐指数
2
解决办法
6653
查看次数

在seeds.rb中使用Paperclip

我们说我的seeds.rb文件中有以下条目:

Image.create(:id => 52, :asset_file_name => "somefile.jpg", :asset_file_size => 101668, :asset_content_type => "image/jpeg", :product_id => 52)
Run Code Online (Sandbox Code Playgroud)

如果我播种它,它会尝试处理指定的图像,我收到此错误:

No such file or directory - {file path} etc...
Run Code Online (Sandbox Code Playgroud)

我的图像备份,所以我真的不需要创建它们; 但我需要记录.我不能在我的模型中评论paperclip指令; 然后它起作用; 但我想可能还有另一种解决方案.

是否还有其他模式可以实现它?或者告诉回形针不要处理图像?

ruby ruby-on-rails seed paperclip

16
推荐指数
1
解决办法
7710
查看次数

压缩存储在S3上的所有Paperclip附件

Paperclip是Rails的一个很棒的上传插件.将上传存储在本地文件系统或Amazon S3上似乎运行良好.我只假设本地主机上存储文件,但此应用程序需要使用S3,因为它将托管在Heroku上.

如何通过单个压缩下载从S3获取所有上传/附件?

本地文件系统获取zip 文件似乎很简单.它让S3中的文件让我感到困惑.我认为这可能与rubyzip处理URL引用的文件的方式有关.我尝试了各种方法,但似乎无法避免错误.

    format.zip {
                registrations_with_attachments = Registration.find_by_sql('SELECT * FROM registrations WHERE abstract_file_name NOT LIKE ""')
                headers['Cache-Control'] = 'no-cache'  
                tmp_filename = "#{RAILS_ROOT}/tmp/tmp_zip_" <<
                                Time.now.to_f.to_s <<
                                ".zip"

                # rubyzip gem version 0.9.1
                # rdoc http://rubyzip.sourceforge.net/                
                Zip::ZipFile.open(tmp_filename, Zip::ZipFile::CREATE) do |zip|
                  #get all of the attachments

                  # attempt to get files stored on S3
                  # FAIL
                  registrations_with_attachments.each { |e| zip.add("abstracts/#{e.abstract.original_filename}", e.abstract.url(:original, false)) }
                  # => No such file or directory - http://s3.amazonaws.com/bucket/original/abstract.txt
                  # Should note that these files …
Run Code Online (Sandbox Code Playgroud)

ruby zip ruby-on-rails amazon-s3 paperclip

15
推荐指数
1
解决办法
4891
查看次数

如何在没有文件的情况下使用Paperclip,只需要一个字符串?

我有一个rake文件,它通过HTTP读取内容,我想使用Paperclip将加载的内容存储在Amazon S3上.当我提供本地文件时,它工作正常,但我想将内容设置为字符串并手动设置内容类型.

以下不起作用.未发出错误,数据库条目已更新,但在S3中未创建任何文件:

p.attachment = "Test"
p.attachment_file_name = "test.txt"
p.attachment_content_type = "text/plain"
p.attachment_file_size = "Test".size
p.attachment_updated_at = Time.now
p.save
Run Code Online (Sandbox Code Playgroud)

我想我可以用我的内容写一个临时文件,但这将是一个非常低效的解决方案.

ruby-on-rails amazon-s3 paperclip

15
推荐指数
3
解决办法
6268
查看次数

Paperclip和Amazon S3如何做路径?

使用Amazon S3时如何使用回形针创建路径?

我的目录上的目录是:

/image/:id/:filename
Run Code Online (Sandbox Code Playgroud)

我的模特:

  has_attached_file :image,
    :storage => :s3,
    :bucket => 'mybucket',
    :s3_credentials => {
      :access_key_id => ENV['S3_KEY'],
      :secret_access_key => ENV['S3_SECRET']
    }
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails paperclip ruby-on-rails-3

15
推荐指数
2
解决办法
9125
查看次数

Paperclip - 保存前重命名文件

我在保存之前使用此方法重命名图像:

  def rename_avatar
    self.avatar.instance_write :file_name, Time.now.to_i.to_s
  end

  before_post_process :rename_avatar
Run Code Online (Sandbox Code Playgroud)

图像被当前时间重命名,但没有添加文件类型,而是1334487964.jpg仅保存1334487964.

那里我想念的是什么?我想:file_name只包含文件名 - 没有文件类型

file-rename paperclip ruby-on-rails-3

15
推荐指数
1
解决办法
7165
查看次数

Ruby on Rails 4 - 重复的回形针验证消息

有没有办法阻止验证消息出现两次Paperclip上传验证?

这是我的模型:

has_attached_file :photo, :styles => { :thumb => "215x165" }, :default_url => "/images/:style/missing.png"

validates_attachment :photo, :presence => true,
:content_type => { :content_type => "image/jpg" },
:size => { :in => 0..0.5.megabytes }
Run Code Online (Sandbox Code Playgroud)

这是我的观点:

<% if @product.errors.any? %>
<p>The following errors were found:</p>
  <ul>
    <% @product.errors.full_messages.each do |message| %>
      <li>- <%= message %></li>
    <% end %>
  </ul>
<% end %>
Run Code Online (Sandbox Code Playgroud)

如果我上传无效文件,我会收到以下错误消息:

  • 照片内容类型无效
  • 照片无效

有没有办法让其中一个出现?我尝试过向模型添加消息:但那么这也只是出现了两次!

谢谢!

ruby-on-rails paperclip ruby-on-rails-4

15
推荐指数
2
解决办法
3991
查看次数

Ruby on Rails - Paperclip错误

作为参考,我一直在关注本教程:https://devcenter.heroku.com/articles/paperclip-s3除了我现在在localhost测试中,所以我安装了Figaro gem并将我的S3信息放在application.yml中.

使用Rails v4,Cocaine v0.5.3和Paperclip v4.1.0(不确定是否需要提及任何其他gem版本号).

我有一个名为SubmissionDetails的模型,其new.html.erb中我试图将jpg上传到名为attachment的列.以下是相关的型号代码:

has_attached_file :attachment, styles: {
thumb: '200x200>',
large: '800x800>'
}

validates_attachment_content_type :attachment, content_type: /\Aimage\/.*\Z/
Run Code Online (Sandbox Code Playgroud)

当我尝试上传jpg时,它返回到表单,并显示以下错误消息:

1 error prohibited this submission_detail from being saved:
Attachment translation missing:
en.activerecord.errors.models.submission_detail.attributes.attachment.spoofed_media_type
Run Code Online (Sandbox Code Playgroud)

我理解了一些错误,我的en.yml文件中缺少显示此错误消息的文本,但那个欺骗媒体类型部分呢?

这显示在我的服务器控制台中,不确定这是否相关:

[paperclip] Content Type Spoof: Filename header.jpg (["image/jpeg"]), content type discovered from file command: . See documentation to allow this combination.
(0.0ms)  rollback transaction
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails paperclip

15
推荐指数
2
解决办法
1万
查看次数