gpt4 book ai didi

ruby-on-rails - 回形针 5.1 内容类型验证过于严格

转载 作者:行者123 更新时间:2023-12-02 20:56:02 25 4
gpt4 key购买 nike

我需要上传扩展名为 .txt 的附件,但通过 file 命令评估为 mime 类型“application/octet-stream”。该文件由设备自动生成,上传前无法重命名。我尝试过:

class Book < ActiveRecord::Base
has_attached_file :excerpt
validates_attachment_content_type :excerpt, content_type: { content_typ: ["text/plain", "application/octet-stream"]}
validates_attachment_file_name :excerpt, matches: [/txt\z/]
end

但我总是收到错误,检测到的内容类型与推断的内容类型不匹配:

Command :: file -b --mime '/tmp/313a40bb0448477e051da1e2cba2c20120161027-19345-lrhf6t.txt'
[paperclip] Content Type Spoof: Filename Sample.txt (text/plain from Headers, ["text/plain"] from Extension), content type discovered from file command: application/octet-stream. See documentation to allow this combination.

错误消息说要在文档中查找允许组合的方法,但我无法找到任何看起来像解决方法的内容。看到这个discussion但这是针对 v4 的。

最佳答案

谢谢你的指点,克里斯。我想我没有足够仔细地阅读自述文件的该部分。 (顺便说一句,修复拼写错误没有任何区别。)

所以,解决办法如下:

config/initializers/paperclip.rb中:

Paperclip.options[:content_type_mappings] = {
txt: %w(application/octet-stream)
}

在模型中:

class Book < ActiveRecord::Base
has_attached_file :excerpt
validates_attachment_file_name :excerpt, matches: [/txt\z/]
end

无论实际的 .txt 文件是“text/plain”还是“application/octet-stream”,这都有效。

关于ruby-on-rails - 回形针 5.1 内容类型验证过于严格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40294230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com